在 android 对话框的 setMultiChoiceItems 中以编程方式检查项目
check items programmatically in setMultiChoiceItems in android dialog
我在对话框中使用选中的 ListView
。我能够获取所有选中的项目并像这样存储它:
builder.setMultiChoiceItems(arr, null,
new DialogInterface.OnMultiChoiceClickListener() {
// indexSelected contains the index of item (of which checkbox checked)
@Override
public void onClick(DialogInterface dialog, int indexSelected,
boolean isChecked) {
if (isChecked) {
brandNameIDMap.put(brandList.getItem(indexSelected).getProductID(), brandList.getItem(indexSelected).getProductName());
//Log.i("ID", "onClick: "+brandList.getItem(indexSelected).getProductID());
//seletedItems.add(indexSelected);
} else{
brandNameIDMap.remove(brandList.getItem(indexSelected).getProductID());
}
}
});
问题:
现在我想重新打开 Dialog
并且之前选择的项目需要自动选择。我该怎么做?
创建数组
Boolean checked[] = new Boolean[arr.size()];
然后在检查任何项目时像这样将其添加到数组中。
builder.setMultiChoiceItems(arr, checked,
new DialogInterface.OnMultiChoiceClickListener() {
// indexSelected contains the index of item (of which checkbox checked)
@Override
public void onClick(DialogInterface dialog, int indexSelected,
boolean isChecked) {
if (isChecked) {
checked[indexSelected]=true;
brandNameIDMap.put(brandList.getItem(indexSelected).getProductID(), brandList.getItem(indexSelected).getProductName());
//Log.i("ID", "onClick: "+brandList.getItem(indexSelected).getProductID());
//seletedItems.add(indexSelected);
} else{
checked[indexSelected]=false;
brandNameIDMap.remove(brandList.getItem(indexSelected).getProductID());
}
}
});
我在对话框中使用选中的 ListView
。我能够获取所有选中的项目并像这样存储它:
builder.setMultiChoiceItems(arr, null,
new DialogInterface.OnMultiChoiceClickListener() {
// indexSelected contains the index of item (of which checkbox checked)
@Override
public void onClick(DialogInterface dialog, int indexSelected,
boolean isChecked) {
if (isChecked) {
brandNameIDMap.put(brandList.getItem(indexSelected).getProductID(), brandList.getItem(indexSelected).getProductName());
//Log.i("ID", "onClick: "+brandList.getItem(indexSelected).getProductID());
//seletedItems.add(indexSelected);
} else{
brandNameIDMap.remove(brandList.getItem(indexSelected).getProductID());
}
}
});
问题:
现在我想重新打开 Dialog
并且之前选择的项目需要自动选择。我该怎么做?
创建数组
Boolean checked[] = new Boolean[arr.size()];
然后在检查任何项目时像这样将其添加到数组中。
builder.setMultiChoiceItems(arr, checked,
new DialogInterface.OnMultiChoiceClickListener() {
// indexSelected contains the index of item (of which checkbox checked)
@Override
public void onClick(DialogInterface dialog, int indexSelected,
boolean isChecked) {
if (isChecked) {
checked[indexSelected]=true;
brandNameIDMap.put(brandList.getItem(indexSelected).getProductID(), brandList.getItem(indexSelected).getProductName());
//Log.i("ID", "onClick: "+brandList.getItem(indexSelected).getProductID());
//seletedItems.add(indexSelected);
} else{
checked[indexSelected]=false;
brandNameIDMap.remove(brandList.getItem(indexSelected).getProductID());
}
}
});