2017-05-10 153 views
0

我有一個listview android中的複選框。我希望單擊一個按鈕,所有複選框都將被選中/取消選中。我有下面的代碼。這隻會檢查屏幕視圖中的複選框,其餘部分不變。任何建議選擇所有Listview複選框

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

如何檢查只是在屏幕視圖

回答

0

最好的列表視圖中的所有項目沒有任何建議,爲此,根據我的下面跟着給出這些步驟實現:

  1. 添加一個變量讓我們說你的「RowModel」類中命名爲「isChecked」,並且在你的「Arraylist」中添加項時默認設置爲false。
  2. 在你的Adapter「getView()」中定義一個條件,你將檢查該變量的值是否爲「true」,然後將複選框設置爲「setChecked = true」,否則爲false。
  3. 在您的Main類中,單擊按鈕時,爲整個陣列列表設置一個循環的「ischecked = true」的值。
  4. 調用方法「youradapter.notifyDataSetChangede()」。

完成了!

PS:還有一個建議,總是在Adapter類中使用「ViewHolder」子類。