项目中送到了多选功能,送了下相关文章,都没有全部实现上述功能的 所以自己记录下,基本上类似功能都可以实现。
1.全选:点击全选 全部选中 否则全部不选中
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; } } }