Dialog中复选框选择不同的选项实现不同的功能解决方案:
final String[] items = {"1", "2", "3"};
final boolean[] selected = {false, false, false};
new AlertDialog.Builder(this)
.setTitle("清除数据")
.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
selected[i] = b;
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
SparseBooleanArray CheCked = ((AlertDialog) dialogInterface).getListView().getCheckedItemPositions();
if (CheCked.get(0)) {
//功能实现
}
if (CheCked.get(1)) {
//功能实现
}
if (CheCked.get(2)) {
//功能实现
}
}
}).create().show();
代码中的数据源的数量一定要和是否选中的状态数量一致:
String[] items 和 boolean[] selected
最主要的是:
SparseBooleanArray CheCked = ((AlertDialog) dialogInterface).getListView().getCheckedItemPositions();
问题解决地址:Checkbox Dialog 选中问题