选择所有列表视图复选框

时间:2017-05-10 21:55:01

标签: android

我在listview android中有复选框。我希望单击一个按钮,选中/取消选中所有复选框。我有以下代码。这只检查屏幕视图中的复选框,剩下的就是其余部分。任何建议

ListView lv;
........


  CheckBox all = (CheckBox)findViewById(R.id.selectAll);
            all.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton k, boolean isChecked) {
                  if(k.isChecked()){
                      for(int i=0 ; i < lv.getChildCount() ; i++) {
                          CheckBox cb = (CheckBox) lv.getChildAt(i).findViewById(R.id.contactcheck);
                          cb.setChecked(true);
                      }

                  }else{
                      for(int i=0 ; i < lv.getChildCount() ; i++) {
                          CheckBox cb = (CheckBox) lv.getChildAt(i).findViewById(R.id.contactcheck);
                          cb.setChecked(false);
                      }`enter code here`
                  }
                }
            });

有关如何检查列表视图中的所有项目的任何建议,而不仅仅是在屏幕视图中

1 个答案:

答案 0 :(得分:0)

根据我的要求,最好的方法是遵循以下步骤:

  1. 在“RowModel”类中添加一个名为“isChecked”的变量,并在“Arraylist”中添加项目时默认设置为false。
  2. 在您的适配器“getView()”中定义一个条件,您将在其中检查该变量的值是否为“true”,然后将复选框设置为“setChecked = true”,否则为false。
  3. 在您的Main类中,点击按钮为您的整个arraylist设置一个“ischecked = true”的值。
  4. 调用方法“youradapter.notifyDataSetChangede()”。
  5. 已经完成了!

    PS:还有一个建议,总是在Adapter类中使用“ViewHolder”子类。