2017-05-27 8 views
0

にリストビューのすべてのチェックボックスを選択しI'amは、ダイアログ内のボタンをクリックすることにより、リストビューのすべてのチェックボックスを選択します。ここ私は<strong>チェックボックス</strong> .Iで<strong>リストビュー</strong>を表示しましたで<strong>カスタムダイアログ</strong>を持つアンドロイド

は、上記のコードでonClickListener

selectAll.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       for (int i = 0; i < listView.getChildCount(); i++) { 
      LinearLayout myLayout =(LinearLayout)listView.getChildAt(i); 
      CheckBox cb = (CheckBox) myLayout.findViewById(R.id.checkbox); 
      cb.setChecked(true); 
       } 
      } 
     }); 

私のボタンである私は、唯一のビューの上にあるこれらのチェックボックスをチェックすることができています。 これは、listViewがビューを再利用するために発生します。

+0

アダプタのGetViewメソッド(真) –

答えて

0

あなたは、あなたのモデルクラスにブール変数を追加し、ボタンのクリックリスナーにtrueを設定することができます何をすべきかを私に提案してください、この点を確認してください。

  class YourModel{ 
      public boolean isSelected() { 
       return isSelected; 
      } 

      public void setSelected(boolean selected) { 
       isSelected = selected; 
      } 
      } 

あなたのボタンのonClick変更を。

   public void onClick(View view) { 
        for (int i = 0; i < yourArrayList.size(); i++) { 
         yourArrayList.get(i).setSelected(true); 
        } 
        yourAdapter.notifyDataSetChanged(); 
       } 

checkbox.setchecked(ブール値==真)場合は、とあなたのリストビューアダプタチェックにすると、ダイアログのボタンクリックtrueに設定されたListViewモデルクラスのbooleanを追加することができます

  public View getView (final int position, View convertView, ViewGroup parent){ 
      CheckBox cb = (CheckBox) myLayout.findViewById(R.id.checkbox); 
      cb.setChecked(yourModel.isSelected()); 
      } 
+0

本当にありがとうございました。私のために働いた –

+0

もう一つ事を教えてくれますか?チェックボックスを選択して閉じると、それを再び開くと、選択したすべてのチェックボックスが選択されたままになります。 –

+0

あなたはそれをすべてri8を選択する必要がありますか? –

関連する問題

 関連する問題