AlertDialog.Builder实现多选框的全选和反选功能

来源:互联网 发布:云计算 智慧园区 编辑:程序博客网 时间:2024/06/03 20:44
多选框有一个全选按钮,需要实现的功能是选中全选则所有选项被选中,取消全选则所有选项被取消
现在的情况是,选中全选可以将所有选项选中,但是取消全选却不能取消所有选项,代码如下

String[] strArr = new String[] { "赵", "钱", "孙", "李", "周", "吴", "郑", "王", "全选" };
boolean[] boolArr = new boolean[strArr.length];

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("多选");
builder.setMultiChoiceItems(strArr, boolArr, new OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (which == strArr.length - 1) { // 点击全选
for (int i = 0; i < boolArr.length; i++) {
boolArr[i] = isChecked;
}
} else {
boolArr[which] = isChecked;
}
}
});
builder.setPositiveButton("确定", null);
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
}
0 0