2017-05-27 89 views
0

我'选择具有自定义对话框中,我展示了一个的ListView复选框。我想通过在对话框中单击按钮,选择ListView中的所有复选框的ListView所有复选框。android系统

这里是我的按钮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

您可以添加在列表视图模型类布尔值,设置为true时,对话框按钮点击,并在你的ListView适配器检查(布尔==真)checkbox.setchecked (true) –

回答

0

您可以添加布尔变量到你的模型类,并设置你的按钮点击监听器真,看看这个:

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

适配器getView方法

  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? –