ListView lv = ((AlertDialog) dialog).getListView();
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
if (checkedItems != null) {
for (int i = 0; i < checkedItems.size(); i++) {
//if (checkedItems.valueAt(i)) {
if (checkedItems.get(i)) {
lv.getChildAt(checkedItems.keyAt(i)).setEnabled(false);
String item = lv.getAdapter().getItem(
checkedItems.keyAt(i)).toString();
Log.i("TAG", item);
}
}
}
我在android中加载警告对话框时获得所有预先选中的复选框。现在,我想使用以下方法禁用预先选中的复选框:
lv.getChildAt(checkedItems.keyAt(i)).setEnabled(false);
但它不知道如何禁用是值得赞赏的。
答案 0 :(得分:0)
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
这意味着只是'检查项目'。您的代码只能访问每个复选框中的值。
如何访问listview并操作访问权限?
我认为您应该直接访问listview。
答案 1 :(得分:0)
AlertDialog.Builder builder = new AlertDialog.Builder(A);
builder.setMultiChoiceItems(items, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
AlertDialog dialog = (AlertDialog) dialog;
ListView v = dialog.getListView();
int i = 0;
for (int i = 0; i < items. length; i++) {
v.setItemChecked(i, false); // true if you want to check all
i++;
}
}
});
答案 2 :(得分:0)
也许对某人有用。
((CheckedTextView)lv.getChildAt(i)).setChecked(isChecked);