Android listView中包含多个CheckBox 的使用

实现listview中一行中有多个checkbox的多选

在这里插入图片描述

android UI进阶之实现listView中checkbox的使用

最近公司做一个关于食堂订餐方面的应用用到了这个界面所以我帖出来跟大家分享一下。费话不多说。

首先是这里有两个类,一个是实体类MeatBean,另一个是adapter类;

public class MeatBean implements Serializable {
        private String MealDate;
        private String UserID;
        private String Week;
        private boolean HasBreakFast;
        private boolean HasLunch;
        private boolean HasDinner;
        private boolean HasMidnight;
        private boolean HasHorizontal;
        private boolean HasVertical;
        
        public DataBean(String mealDate, String userID, String week, boolean hasBreakFast, boolean hasLunch, boolean hasDinner, boolean hasMidnight) {
            MealDate = mealDate;
            UserID = userID;
            Week = week;
            HasBreakFast = hasBreakFast;
            HasLunch = hasLunch;
            HasDinner = hasDinner;
            HasMidnight = hasMidnight;
        }

        public boolean isHasHorizontal() {
            return HasHorizontal;
        }

        public void setHasHorizontal(boolean hasHorizontal) {
            HasHorizontal = hasHorizontal;
        }

        public boolean isHasVertical() {
            return HasVertical;
        }

        public void setHasVertical(boolean hasVertical) {
            HasVertical = hasVertical;
        }

        public String getMealDate() {
            return MealDate;
        }

        public void setMealDate(String MealDate) {
            this.MealDate = MealDate;
        }

        public String getUserID() {
            return UserID;
        }

        public void setUserID(String UserID) {
            this.UserID = "";
        }

        public String getWeek() {
            return Week;
        }

        public void setWeek(String Week) {
            this.Week = Week;
        }

        public boolean isHasBreakFast() {
            return HasBreakFast;
        }

        public void setHasBreakFast(boolean HasBreakFast) {
            this.HasBreakFast = HasBreakFast;
        }

        public boolean isHasLunch() {
            return HasLunch;
        }

        public void setHasLunch(boolean HasLunch) {
            this.HasLunch = HasLunch;
        }

        public boolean isHasDinner() {
            return HasDinner;
        }

        public void setHasDinner(boolean HasDinner) {
            this.HasDinner = HasDinner;
        }

        public boolean isHasMidnight() {
            return HasMidnight;
        }

        public void setHasMidnight(boolean HasMidnight) {
            this.HasMidnight = HasMidnight;
        }
    }
}
MyAdapter中主要还是和之前单个列表的写法一样下面我把我写的adapter的内容贴出来
public class MyAdapter extends BaseAdapter {
    private Activity mContext;
    List<MeatBean.DataBean> mList;
    private LayoutInflater mInflater;

    SimpleDateFormat sf = new SimpleDateFormat("MM-dd");
    CheckBox ckBreakfast, ckLunch, ckAfter, ckNight;
    private int testBool, testBool2, testBool3, testBool4;

    public MyAdapter(Activity mContext, List<MeatBean.DataBean> mList, CheckBox ckBreakfast, CheckBox ckLunch, CheckBox ckAfter, CheckBox ckNight) {
        this.mContext = mContext;
        this.mList = mList;
        this.mInflater = LayoutInflater.from(mContext);
        this.ckBreakfast = ckBreakfast;
        this.ckLunch = ckLunch;
        this.ckAfter = ckAfter;
        this.ckNight = ckNight;
    }

    @Override
    public int getCount() {
        return mList.size();
    }

    @Override
    public Object getItem(int position) {
        return mList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public View getView(int position, View view, ViewGroup parent) {
        ViewHolder holder = null;
        if (view == null) {
            view = mInflater.inflate(R.layout.item_check_box_table, null);
            holder = new ViewHolder(view);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        MeatBean.DataBean bean = mList.get(position);
        String mDate = sf.format(DateUtil.setDate(bean.getMealDate()));
        holder.tvDate.setText(mDate);
        holder.tvWeek.setText(String.valueOf(bean.getWeek()));

        if (bean.isHasBreakFast() && bean.isHasLunch()
                && bean.isHasDinner() && bean.isHasMidnight()) {
            bean.setHasHorizontal(true);
        } else {
            bean.setHasHorizontal(false);
        }

        holder.ckChildBreakfast.setId(position);
        holder.ckChildLunch.setId(position);
        holder.ckChildNight.setId(position);
        holder.ckChildNightSnack.setId(position);
        holder.ckChildAll.setId(position);

        holder.ckChildBreakfast.setChecked(bean.isHasBreakFast());
        holder.ckChildLunch.setChecked(bean.isHasLunch());
        holder.ckChildNight.setChecked(bean.isHasDinner());
        holder.ckChildNightSnack.setChecked(bean.isHasMidnight());
        holder.ckChildAll.setChecked(bean.isHasHorizontal());


        //需求设置第一行不可点击
        if (position == 0) {
            holder.tvDate.setTextColor(mContext.getResources().getColor(R.color.grey_home));
            holder.tvWeek.setTextColor(mContext.getResources().getColor(R.color.grey_home));
            holder.labelView.setTriangleBackgroundColor(mContext.getResources().getColor(R.color.grey_home));
            holder.ckChildBreakfast.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_home)));
            holder.ckChildLunch.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_home)));
            holder.ckChildNight.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_home)));
            holder.ckChildNightSnack.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_home)));
            holder.ckChildAll.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_home)));
            holder.ckChildBreakfast.setEnabled(false);
            holder.ckChildLunch.setEnabled(false);
            holder.ckChildNight.setEnabled(false);
            holder.ckChildNightSnack.setEnabled(false);
            holder.ckChildAll.setEnabled(false);
        } else {
            holder.tvDate.setTextColor(mContext.getResources().getColor(R.color.black));
            holder.tvWeek.setTextColor(mContext.getResources().getColor(R.color.black));
            holder.labelView.setTriangleBackgroundColor(mContext.getResources().getColor(R.color.green));
            if (holder.ckChildBreakfast.isChecked()) {
                holder.ckChildBreakfast.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
            } else {
                holder.ckChildBreakfast.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
            }
            if (holder.ckChildLunch.isChecked()) {
                holder.ckChildLunch.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
            } else {
                holder.ckChildLunch.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
            }
            if (holder.ckChildNight.isChecked()) {
                holder.ckChildNight.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
            } else {
                holder.ckChildNight.setButtonTintList(StringUtil.createColorStateList(mContext.getResources().getColor(R.color.grey_dark), Color.GREEN, Color.GREEN, Color.GREEN));
            }
            if (holder.ckChildNightSnack.isChecked()) {
                holder.ckChildNightSnack.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
            } else {
                holder.ckChildNightSnack.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
            }
            if (holder.ckChildAll.isChecked()) {
                holder.ckChildAll.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
            } else {
                holder.ckChildAll.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
            }

            holder.ckChildBreakfast.setEnabled(true);
            holder.ckChildLunch.setEnabled(true);
            holder.ckChildNight.setEnabled(true);
            holder.ckChildNightSnack.setEnabled(true);
            holder.ckChildAll.setEnabled(true);
        }

        final ViewHolder finalHolder = holder;
        //点击时把值修改下
        holder.ckChildBreakfast.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                MeatBean.DataBean dat = mList.get(buttonView.getId());
                dat.setHasBreakFast(isChecked);
                mList.set(buttonView.getId(), dat);
                testBool = 0;
                for (int i = 0; i < mList.size(); i++) {
                    if (mList.get(i).isHasBreakFast()) {
                        testBool++;
                    }
                }
                if (testBool == 30 || testBool == 31) {
                    ckBreakfast.setChecked(true);
                } else {
                    ckBreakfast.setChecked(false);
                }

                if (isChecked) {
                    finalHolder.ckChildBreakfast.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
                } else {
                    finalHolder.ckChildBreakfast.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
                }

                if (finalHolder.ckChildBreakfast.isChecked() && finalHolder.ckChildLunch.isChecked()
                        && finalHolder.ckChildNight.isChecked() && finalHolder.ckChildNightSnack.isChecked()) {
                    finalHolder.ckChildAll.setChecked(true);
                    dat.setHasHorizontal(true);
                } else {
                    finalHolder.ckChildAll.setChecked(false);
                    dat.setHasHorizontal(false);
                }
            }
        });


        holder.ckChildLunch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                MeatBean.DataBean dat = mList.get(buttonView.getId());
                dat.setHasLunch(isChecked);
                mList.set(buttonView.getId(), dat);
                testBool2 = 0;
                for (int i = 0; i < mList.size(); i++) {
                    if (mList.get(i).isHasLunch()) {
                        testBool2++;
                    }
                }
                if (testBool2 == 30 || testBool2 == 31) {
                    ckLunch.setChecked(true);
                } else {
                    ckLunch.setChecked(false);
                }
                if (isChecked) {
                    finalHolder.ckChildLunch.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
                } else {
                    finalHolder.ckChildLunch.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
                }

                if (finalHolder.ckChildBreakfast.isChecked() && finalHolder.ckChildLunch.isChecked()
                        && finalHolder.ckChildNight.isChecked() && finalHolder.ckChildNightSnack.isChecked()) {
                    finalHolder.ckChildAll.setChecked(true);
                    dat.setHasHorizontal(true);
                } else {
                    finalHolder.ckChildAll.setChecked(false);
                    dat.setHasHorizontal(false);
                }
            }
        });

        holder.ckChildNight.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                MeatBean.DataBean dat = mList.get(buttonView.getId());
                dat.setHasDinner(isChecked);
                mList.set(buttonView.getId(), dat);
                testBool3 = 0;
                for (int i = 0; i < mList.size(); i++) {
                    if (mList.get(i).isHasDinner()) {
                        testBool3++;
                    }
                }
                if (testBool3 == 30 || testBool3 == 31) {
                    ckAfter.setChecked(true);
                } else {
                    ckAfter.setChecked(false);
                }

                if (isChecked) {
                    finalHolder.ckChildNight.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
                } else {
                    finalHolder.ckChildNight.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
                }

                if (finalHolder.ckChildBreakfast.isChecked() && finalHolder.ckChildLunch.isChecked()
                        && finalHolder.ckChildNight.isChecked() && finalHolder.ckChildNightSnack.isChecked()) {
                    finalHolder.ckChildAll.setChecked(true);
                    dat.setHasHorizontal(true);
                } else {
                    finalHolder.ckChildAll.setChecked(false);
                    dat.setHasHorizontal(false);
                }
            }
        });

        holder.ckChildNightSnack.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                MeatBean.DataBean dat = mList.get(buttonView.getId());
                dat.setHasMidnight(isChecked);
                mList.set(buttonView.getId(), dat);
                testBool4 = 0;
                for (int i = 0; i < mList.size(); i++) {
                    if (mList.get(i).isHasMidnight()) {
                        testBool4++;
                    }
                }
                if (testBool4 == 30 || testBool4 == 31) {
                    ckNight.setChecked(true);
                } else {
                    ckNight.setChecked(false);
                }
                if (isChecked) {
                    finalHolder.ckChildNightSnack.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
                } else {
                    finalHolder.ckChildNightSnack.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
                }

                if (finalHolder.ckChildBreakfast.isChecked() && finalHolder.ckChildLunch.isChecked()
                        && finalHolder.ckChildNight.isChecked() && finalHolder.ckChildNightSnack.isChecked()) {
                    finalHolder.ckChildAll.setChecked(true);
                    dat.setHasHorizontal(true);
                } else {
                    finalHolder.ckChildAll.setChecked(false);
                    dat.setHasHorizontal(false);
                }
            }
        });

        holder.ckChildAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                MeatBean.DataBean dat = mList.get(buttonView.getId());
                dat.setHasHorizontal(isChecked);

                mList.set(buttonView.getId(), dat);

                if (isChecked) {
                    finalHolder.ckChildAll.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.green)));
                } else {
                    finalHolder.ckChildAll.setButtonTintList(ColorStateList.valueOf(mContext.getResources().getColor(R.color.grey_dark)));
                }
                if (isChecked) {
                    finalHolder.ckChildAll.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dat.setHasLunch(true);
                            dat.setHasDinner(true);
                            dat.setHasMidnight(true);
                            dat.setHasBreakFast(true);
                            finalHolder.ckChildBreakfast.setChecked(dat.isHasBreakFast());
                            finalHolder.ckChildLunch.setChecked(dat.isHasLunch());
                            finalHolder.ckChildNight.setChecked(dat.isHasDinner());
                            finalHolder.ckChildNightSnack.setChecked(dat.isHasMidnight());
                            finalHolder.ckChildAll.setChecked(dat.isHasHorizontal());
                        }
                    });

                } else {
                    finalHolder.ckChildAll.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dat.setHasLunch(false);
                            dat.setHasDinner(false);
                            dat.setHasMidnight(false);
                            dat.setHasBreakFast(false);
                            finalHolder.ckChildBreakfast.setChecked(dat.isHasBreakFast());
                            finalHolder.ckChildLunch.setChecked(dat.isHasLunch());
                            finalHolder.ckChildNight.setChecked(dat.isHasDinner());
                            finalHolder.ckChildNightSnack.setChecked(dat.isHasMidnight());
                            finalHolder.ckChildAll.setChecked(dat.isHasHorizontal());
                        }
                    });
                }
            }
        });
        return view;
    }

    //全选
    public void selectAll() {
        if (mList != null) {
            for (int i = 0; i < mList.size(); i++) {
                if (i != 0) {
                    mList.get(i).setHasBreakFast(true);
                    mList.get(i).setHasLunch(true);
                    mList.get(i).setHasDinner(true);
                    mList.get(i).setHasMidnight(true);
                    mList.get(i).setHasHorizontal(true);
                }
            }
            this.notifyDataSetChanged();
        }
    }

    //取消全选
    public void cancelAll() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0) {
                mList.get(i).setHasBreakFast(false);
                mList.get(i).setHasLunch(false);
                mList.get(i).setHasDinner(false);
                mList.get(i).setHasMidnight(false);
                mList.get(i).setHasHorizontal(false);
            }
        }
        this.notifyDataSetChanged();
    }

    //选择垂直 早餐
    public void selectVertical() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0) {
                mList.get(i).setHasBreakFast(true);
            }
        }
        this.notifyDataSetChanged();
    }

    //取消垂直 早餐
    public void cancelVertical() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0) {
                mList.get(i).setHasBreakFast(false);
            }
        }
        this.notifyDataSetChanged();
    }

    //选择垂直 午餐
    public void selectVertical2() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0) {
                mList.get(i).setHasLunch(true);
            }
        }
        this.notifyDataSetChanged();
    }

    //取消垂直 午餐
    public void cancelVertical2() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0) {
                mList.get(i).setHasLunch(false);
            }
        }
        this.notifyDataSetChanged();
    }

    //选择垂直 晚餐
    public void selectVertical3() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0)
                mList.get(i).setHasDinner(true);
        }
        this.notifyDataSetChanged();
    }

    //取消垂直 晚餐
    public void cancelVertical3() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0)
                mList.get(i).setHasDinner(false);
        }
        this.notifyDataSetChanged();
    }

    //选择垂直 夜宵
    public void selectVertical4() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0)
                mList.get(i).setHasMidnight(true);
        }
        this.notifyDataSetChanged();
    }

    //取消垂直 夜宵
    public void cancelVertical4() {
        for (int i = 0; i < mList.size(); i++) {
            if (i != 0)
                mList.get(i).setHasMidnight(false);
        }
        this.notifyDataSetChanged();
    }

    static class ViewHolder {
        @BindView(R.id.tv_item_date)
        TextView tvDate;
        @BindView(R.id.tv_item_week)
        TextView tvWeek;
        @BindView(R.id.ck_child_breakfast)
        CheckBox ckChildBreakfast;
        @BindView(R.id.ck_child_lunch)
        CheckBox ckChildLunch;
        @BindView(R.id.ck_child_night)
        CheckBox ckChildNight;
        @BindView(R.id.ck_child_night_snack)
        CheckBox ckChildNightSnack;
        @BindView(R.id.ck_child_all)
        CheckBox ckChildAll;
        @BindView(R.id.item1)
        LinearLayout item1;
        @BindView(R.id.item2)
        LinearLayout item2;
        @BindView(R.id.item3)
        LinearLayout item3;
        @BindView(R.id.item4)
        LinearLayout item4;
        @BindView(R.id.item5)
        LinearLayout item5;
        @BindView(R.id.lab)
        TriangleLabelView labelView;

        ViewHolder(View view) {
            ButterKnife.bind(this, view);
        }
    }
}
MainActivity中只要和adapter 中的进行相关连就能达到 列表控制 tab ,tab也能控制列表中的checkbox

/**
 * 多个checkBox 的处理
 */
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {

    @BindView(R.id.ck_breakfast)
    CheckBox ckBreakfast;
    @BindView(R.id.ck_lunch)
    CheckBox ckLunch;
    @BindView(R.id.ck_after)
    CheckBox ckAfter;
    @BindView(R.id.ck_night)
    CheckBox ckNight;
    @BindView(R.id.ck_all)
    CheckBox ckAll;
    @BindView(R.id.listView)
    ListView mListView;

    private int testBool, testBool2, testBool3, testBool4, mIsCheck;
    private String firstDay, lastDay;
    List<CheckBox> checkViews = new ArrayList<>();
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
    List<MeatBean.DataBean> mList = new ArrayList<>();
    List<String> mDateList = new ArrayList<>();
    MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initAllData();
    }

    private void initAllData() {
        firstDay = sdf1.format(new Date());
        lastDay = DateUtil.getBackDayOfMonth(sdf1);
        mDateList = DateUtil.getDays(firstDay, lastDay);
        checkViews.add(ckBreakfast);
        checkViews.add(ckLunch);
        checkViews.add(ckAfter);
        checkViews.add(ckNight);

        //全选的点击监听
        ckBreakfast.setOnCheckedChangeListener(this);
        ckLunch.setOnCheckedChangeListener(this);
        ckAfter.setOnCheckedChangeListener(this);
        ckNight.setOnCheckedChangeListener(this);
        ckAll.setOnCheckedChangeListener(this);
        adapter = new MyAdapter(MainActivity.this, getInitData(), ckBreakfast, ckLunch, ckAfter, ckNight);
        mListView.setAdapter(adapter);

        adapter.notifyDataSetChanged();
    }

    private List<MeatBean.DataBean> getInitData() {
        for (int i = 0; i < mDateList.size(); i++) {
            Log.d("testDate", mDateList.get(i));
            MeatBean.DataBean bean = new MeatBean.DataBean();
            bean.setMealDate(mDateList.get(i));
            bean.setWeek(DateUtil.getWeek(mDateList.get(i)));
            mList.add(bean);
        }

//        for (int i = 0; i < bean.getData().size(); i++) {
//            if (bean.getData().get(i).isHasBreakFast()) {
//                testBool++;
//            }
//            if (bean.getData().get(i).isHasLunch()) {
//                testBool2++;
//            }
//            if (bean.getData().get(i).isHasDinner()) {
//                testBool3++;
//            }
//            if (bean.getData().get(i).isHasMidnight()) {
//                testBool4++;
//            }
//        }
        Log.d("testData", testBool + "   " + testBool2 + "    " + testBool3 + "     " + testBool4);
        if (testBool == 30 || testBool == 31) {
            ckBreakfast.setChecked(true);
        }
        if (testBool2 == 30 || testBool2 == 31) {
            ckLunch.setChecked(true);
        }
        if (testBool3 == 30 || testBool3 == 31) {
            ckAfter.setChecked(true);
        }
        if (testBool4 == 30 || testBool4 == 31) {
            ckNight.setChecked(true);
        }
        return mList;
    }


    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        mIsCheck = 0;
        for (int i = 0; i < checkViews.size(); i++) {
            if (checkViews.get(i).isChecked()) {
                mIsCheck ++;
                Log.d("testmIsCheck", mIsCheck + "");
                if (mIsCheck == 4) {
                    ckAll.setChecked(true);
                }
            }
        }

        switch (buttonView.getId()) {
            case R.id.ck_breakfast:
                if (isChecked) {
                    ckBreakfast.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.selectVertical();
                        }
                    });
                } else {
                    ckAll.setChecked(false);
                    ckBreakfast.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.cancelVertical();
                        }
                    });
                }
                break;
            case R.id.ck_lunch:
                if (isChecked) {
                    ckLunch.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.selectVertical2();
                        }
                    });
                } else {
                    ckAll.setChecked(false);
                    ckLunch.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.cancelVertical2();
                        }
                    });
                }
                break;
            case R.id.ck_after:
                if (isChecked) {
                    ckAfter.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.selectVertical3();
                        }
                    });
                } else {
                    ckAll.setChecked(false);
                    ckAfter.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.cancelVertical3();
                        }
                    });
                }
                break;
            case R.id.ck_night:
                if (isChecked) {
                    ckNight.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.selectVertical4();
                        }
                    });
                } else {
                    ckAll.setChecked(false);
                    ckNight.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            adapter.cancelVertical4();
                        }
                    });
                }
                break;
            case R.id.ck_all:
                if (isChecked) {
                    ckAll.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            ckBreakfast.setChecked(true);
                            ckLunch.setChecked(true);
                            ckAfter.setChecked(true);
                            ckNight.setChecked(true);
                            ckAll.setChecked(true);
                            adapter.selectAll();
                        }
                    });

                } else {
                    ckAll.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            ckBreakfast.setChecked(false);
                            ckLunch.setChecked(false);
                            ckAfter.setChecked(false);
                            ckNight.setChecked(false);
                            ckAll.setChecked(false);
                            adapter.cancelAll();
                            mIsCheck = 0;
                        }
                    });
                }
                break;
            default:
                break;
        }
    }
}

这样我们就可以进行联动控制了,代码已经帖出。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值