2017-08-02 3 views
0

AlertDialog.Builder.setMultiChoiceItemsを使用して、テキストのチェックボックスを表示しています。チェックされた項目を正常に表示することはできますが、スクロールダウンまたはスクロールするたびに、それらの一部がランダムにチェックされなくなります。以下は私のコードです。スクロール時にダイアログボックスのチェックボックスがオフになる

これを解決するにはどうすればよいですか?どんな助けにも感謝!

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Title") 
    .setMultiChoiceItems(items, selectedItems, 
      new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which, 
            boolean isChecked) { 
        selected[which] = isChecked; 
       } 
      }) 
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int id) { 
      dialog.dismiss(); 
     } 
    }) 
    .setNegativeButton(R.string.preklici, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int id) { 
     } 
    }); 
+0

これはおそらく表示されますか? https://stackoverflow.com/questions/10895763/checkbox-unchecked-when-i-scroll-listview-in-android –

+0

@Rucha Bhattだから、私はlistviewで新しいカスタムダイアログを作成する必要があると思いますか? –

+0

これはAppCompatライブラリのバグです。バグのあるバージョンもあれば、そうでないバージョンもあります。たとえば、23.2.1にはAndroid 6のみのバグがありますが、23.0.1ではそうではありません。利用可能なライブラリバージョンのリストはこちらからご覧ください:https://maven.google.com –

答えて

0

コード内のチェックボックスのチェック状態を処理する必要があります。だから、次の操作を行い、あなたのsetMultiChoiceItemsに続いArrayList<Integer> selList=new ArrayList();を作成し、既に選択した項目

のリストを作成する -

.setMultiChoiceItems(items, selectedItems, 
       new DialogInterface.OnMultiChoiceClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which, 
             boolean isChecked) { 

          // If user select a item then add it in selected items 
          selectedItems.add(which); 
          multichoiceDialog.getListView().setItemChecked(which, isChecked);// You can tell the dialog to update its state here. 

        } 
       } 

私はこれだけsetMultiChoiceItemsメソッド内のコンテンツを使用してコードの1部を示していますのでご注意ください。それ以外の場合は、中括弧を自分で処理しなければならないかもしれません:)

+0

ありがとう、しかし私はそれらを表示するチェックボックスの状態を得ることができます、問題は、私がスクロールするときにのみ、チェックボックスのいくつかがチェックを外すようになります。 –

+0

これで、selectedItemsのリストは何ですか?あなたはあなたのonclicl –

+0

でそれを更新しています、そして、選ばれたリストは何ですか?soran_glekovec私はあなたが2つのものを交換していると思います。 selectedItemsリストを更新してsetMultiChoiceItemsメソッドに渡すか、選択したリストを渡します。 –

0

リスト内のチェックボックスを実装していると思うので、この回答を読むことができます。 https://stackoverflow.com/a/10896140/6869491 助けて欲しいと思っています

+0

それでは、リストビューで新しいカスタムダイアログを作成する必要があると思いますか? –

+0

@soran_glekovecはい、リストビューを持つダイアログを作成してください。これは適切な承認者になります –

関連する問題