2015-12-07 2 views
0

Когда я нажимаю «выбрать все» я хочу, чтобы проверили все флажки, которые имеют каждый элемент ListView это мой макет ::Выберите Флажки, когда меню нажмите пункт

enter image description here

enter code here 
@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    // Handle item selection 
    switch (item.getItemId()) 
    { 

     case R.id.mark_all: 
     { 
      CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox); 
      checkBox.setChecked(true); 
      return true; 
     } 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

этот код выбирает только один флажок, который имеет первый ListView item.thank вы

+1

вы можете добавить макет XML пожалуйста. – Adeeb

+0

его не работает:/он выбирает первый элемент также :(у меня есть пользовательский адаптер для listview, а в моем элементе флажок –

ответ

0

Используйте для петли, чтобы получить все чекбоксы

вот пример:

boolean check = lv.isItemChecked(0); 
for(int i = 0; i <= size; i++) 
    lv.setItemChecked(i, !check); 
0

использовать для петли и получить вид, который содержит флажок:

for(int i = 0; i < listview.getChildCount(); i++) 
{ 
    View v = listview.getChildAt(i);  

    CheckBox ch = v.findViewById(R.id.checkbox); 
    ch.setSelected(true); 
} 
+0

его не работает:/он также выбирает первый элемент :(у меня есть пользовательский адаптер для listview, а в моем элементе checkbox –

+0

then listview.getChildAt (i) вернет флажок. – TheAndroidFreak

+0

@ johnrao07 ответ правильный – TheAndroidFreak

0

первый добавить SparseBooleanArray в классе

SparseBooleanArray mChecked = new SparseBooleanArray(); 

теперь добавить эту функцию для проверки:
если проверка верна: все товары проверены
размера = нет в списке Vew пункта

public void setAllChecked(boolean check) { 
    int size = getCount(); 
    if (check) { 
     for (int i = 0; i < size; i++) { 
      mChecked.put(i, true); 
      notifyDataSetChanged(); 
     } 

    } else { 

     for (int i = 0; i < size; i++) { 
      mChecked.put(i, false); 
      notifyDataSetChanged(); 
     } 

    } 

теперь перед возвращением вида проверки состояния флажка

CheckbixID.setChecked((mChecked.get(position) == true ? true : false)); 
+0

size = no из списка vew item, какой размер вы имеете в виду? –

+0

ваш размер в виде списка – santoXme

+0

извините, но я не понимаю, где я могу получить CheckboxID.thank –

Смежные вопросы