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

  • Post author:
  • Post category:其他


多选框有一个全选按钮,需要实现的功能是选中全选则所有选项被选中,取消全选则所有选项被取消

现在的情况是,选中全选可以将所有选项选中,但是取消全选却不能取消所有选项,代码如下

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();

}

});

}



版权声明:本文为zhouchu5434原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。