|
关键:点击‘下拉’,跳转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);
}
}
});
}
|
----------------------------
原文链接:https://www.jianshu.com/p/de6a3f186b22
程序猿的技术大观园:www.javathinker.net
|
|