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