BaseQuickAdapter搭配listview,点击item中某项文字,展示选择弹窗并实时更新选中文字在控件上

在这里插入图片描述

不过下拉数据弹窗在屏幕下方出现。不想用spinner,需要adapter套adapter,不会。

DetailsAdapter:

@Override
    protected void convert(@NonNull BaseViewHolder helper, StackerTasksBean item) {
       
        helper.setText(R.id.tv_status,"站台:"+MathUtil.strForDisplay(item.getSucker()));
        helper.addOnClickListener(R.id.tv_status);

    }

MathUtil.strForDisplay判空,为空显示“暂无”。实体类Bean中加sucker,就是用于装选择好的文字的,选好后,adapter刷新一下数据就实时显示。

activity:

    private List<Bean> mList;
    private List<String> list;
    private DetailsAdapter mAdapter;
    private String exitChoose;//要展示的字段
``
监听器
```java
        mAdapter.setOnItemChildClickListener((adapter, view, position) -> {
            if(list == null || list.size() == 0){
                showToast("请先选择xxx");
                return;
            }
            List<String> str = new ArrayList<>();
            str.add(mList.get(position).getId());
            Bean bean = mList.get(position);
            chooseOptions(str,position,bean);
        });

弹窗选择,


    private void choosePlatformOptions(List<String> taskId, int position, Bean e){
        //专供adapter内部tv_status 点击后更新字段
        optionsPicker = new OptionsPickerBuilder(this,
                (options1, options2, options3, v) ->{
                    exitChoose = list.get(options1);
                    setExitPlatform(taskId, exitChoose);
                    mList.set(position,e).setStacker(exitChoose);
                    mAdapter.notifyDataSetChanged();

                }).setTitleText("xxx选择")
                .setContentTextSize(15)
                .setCancelText(getString(R.string.cancel))
                .setSubmitText(getString(R.string.confirm))
                .setTextColorCenter(getColor(R.color.black_333))
                .setDividerColor(getColor(R.color.white))
                .build();

        optionsPicker.setPicker(list);
        optionsPicker.show();
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值