Android checkBox 实现多选单选 反选等功能

项目中送到了多选功能,送了下相关文章,都没有全部实现上述功能的 所以自己记录下,基本上类似功能都可以实现。

1.全选:点击全选 全部选中  否则全部不选中

2.单独选项  全选状态下 某一个不选中  全选状态也为不选中   单个选项都填满 全选状态 变为选中

Android checkBox 实现多选单选 反选等功能_第1张图片Android checkBox 实现多选单选 反选等功能_第2张图片

通过checkbox.isChecked();是判断后是否选中,

checkbox.setChecked(true|false)是赋某个checkbox选中。

package com.xiaost.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

import com.xiaost.R;
import com.xiaost.base.BaseFragment;
import com.xiaost.view.SwitchButton;

public class CameraBaojingFragment extends BaseFragment implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {

    private CheckBox checkboxall, checkbox1, checkbox2, checkbox3, checkbox4, checkbox5, v, checkbox6, checkbox7;

    public static final CameraBaojingFragment newInstance() {
        CameraBaojingFragment fragment = new CameraBaojingFragment();
        return fragment;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_warring, null);
        initView();
        return view;
    }

    private void initView() {
        checkboxall = view.findViewById(R.id.checkboxall);
        checkbox1 = view.findViewById(R.id.checkbox1);
        checkbox2 = view.findViewById(R.id.checkbox2);
        checkbox3 = view.findViewById(R.id.checkbox3);
        checkbox4 = view.findViewById(R.id.checkbox4);
        checkbox5 = view.findViewById(R.id.checkbox5);
        checkbox6 = view.findViewById(R.id.checkbox6);
        checkbox7 = view.findViewById(R.id.checkbox7);
        AllCheckListener allCheckListener = new AllCheckListener();
        checkboxall.setOnClickListener(allCheckListener);
        checkboxall.setOnCheckedChangeListener(this);
        checkbox1.setOnCheckedChangeListener(this);
        checkbox2.setOnCheckedChangeListener(this);
        checkbox3.setOnCheckedChangeListener(this);
        checkbox4.setOnCheckedChangeListener(this);
        checkbox5.setOnCheckedChangeListener(this);
        checkbox6.setOnCheckedChangeListener(this);
        checkbox7.setOnCheckedChangeListener(this);


    }


    @Override
    public void onClick(View v) {

    }

    /**
     *全部选中
     */
    class AllCheckListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            if (checkboxall.isChecked()) {
                checkbox1.setChecked(true);
                checkbox2.setChecked(true);
                checkbox3.setChecked(true);
                checkbox4.setChecked(true);
                checkbox5.setChecked(true);
                checkbox6.setChecked(true);
                checkbox7.setChecked(true);
            } else {
                checkbox1.setChecked(false);
                checkbox2.setChecked(false);
                checkbox3.setChecked(false);
                checkbox4.setChecked(false);
                checkbox5.setChecked(false);
                checkbox6.setChecked(false);
                checkbox7.setChecked(false);
            }

        }
    }

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        switch (compoundButton.getId()) {
            case R.id.checkbox1:
            case R.id.checkbox2:
            case R.id.checkbox3:
            case R.id.checkbox4:
            case R.id.checkbox5:
            case R.id.checkbox6:
            case R.id.checkbox7:
                if (checkbox1.isChecked() && checkbox2.isChecked() && checkbox3.isChecked() && checkbox4.isChecked()
                        && checkbox5.isChecked() && checkbox6.isChecked() && checkbox7.isChecked()) {
                    //表示如果都选中时,把全选按钮也选中
                    checkboxall.setChecked(true);
                } else {
                    checkboxall.setChecked(false);
                }
                break;
        }
    }
}


你可能感兴趣的:(Android checkBox 实现多选单选 反选等功能)