下拉框+Switch开关控件

关键:点击‘下拉’,跳转popuwindow,不需要来回传递集合的值,只需修改即可

先看效果(在popuwindow中选择几个,tablayout对应有几个)
效果图1
点击下拉箭头后:
效果图2

主要代码

 public void popu() {
    ...(省略popuwindow的创建)

  ( btn_ok是图上的确认按钮)
    
     btn_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //消失
                initTab();//要最新的集合
                popupWindow.dismiss();
            }
        });
}
initTab()方法
//TabSwitchBean  String title, boolean isChecked;
private ArrayList<TabSwitchBean> list = new ArrayList<>();

private void initTab() {
        //将tablayout里面的清空     juejinTab--tablayout控件
        juejinTab.removeAllTabs();


        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getisChecked()) {//如果集合中被选择
                juejinTab.addTab(juejinTab.newTab().setText(list.get(i).getTitle()));//设置给TABLayout
            }
        }
    }
适配器中
  @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
        //先初始化状态
        final TabSwitchBean bean = myBeans.get(position);
        holder.aSwitch.setChecked(bean.getisChecked());
        //给switch设置改变监听
        holder.aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked){
                    holder.aSwitch.setChecked(true);//改变控件状态
                    myBeans.get(position).setChecked(true);//改变集合数据
                }else {
                    holder.aSwitch.setChecked(false);
                    myBeans.get(position).setChecked(false);
                }
            }
        });
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天是2017年的最后一天,写点东西纪念一下,以后回想起来还有东西可看也是不错的。 最近这段时间算是稍微轻松一点,...
    BookCodingLife阅读 1,235评论 0 0
  • 任何一个人都有七情六欲,愤怒是其中一个主要的情绪,我们都不可避免地遭遇愤怒的时刻,那么我们该怎么应对呢?不管三七二...
    仲夏夜之梦123阅读 981评论 0 4
  • Cookie是什么? 1.Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。 浏览器需要保存这段数据...
    遠_阅读 2,206评论 0 0
  • 来东京第二天,我还是主动发了消息,但得到的是石沉大海的冷漠。东京无雪,内心却已结冰,可能你确实烦了吧,自问我也没有...
    饮酒笑金戈阅读 2,144评论 0 0
  • 高加林有一颗炽烈地想脱离农村,摆脱农民身份的心。 大队书记高明楼的作为,可以把一个家庭的未来和希望破灭掉。而这也可...
    Lake9146阅读 1,267评论 0 0