2017-11-03 10 views
-1

ダイアログでチェックしたListViewを使用しています。アンドロイドのダイアログでsetMultiChoiceItemsの項目をプログラムでチェックしてください

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を再開したいと以前に選択した項目を自動的に選択する必要があり、私はこのようにそれをすべてチェックされた項目ANSストアを取得することができています。これどうやってするの?

答えて

0

次に、このような配列にそれを追加したアイテムをonchecking配列

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()); 
        } 
       } 
      }); 
関連する問題