2013-03-03 2 views
2

Я прочитал текстовые сообщения из базы данных SQLite, которые я затем поместить в списке массива, который отображается пользователю в simple_list_item_multiple_choiceКак проверить все элементы в ArrayList?

Это, как я в настоящее время проверки отдельных элементов в списке. (Этот код находится в пределах мой onclick)

final TextMessagesList backupSms = new TextMessagesList(txtList); 
        String selected = ""; 
        int cntChoice = smsListView.getCount(); 
        SparseBooleanArray sparseBooleanArray = smsListView.getCheckedItemPositions(); 
        for(int i = 0; i < cntChoice; i++){ 
         if(sparseBooleanArray.get(i)) { 
          selected += smsListView.getItemAtPosition(i).toString() + "\n"; 

         } 
        } 
Toast.makeText(Backup.this,selected,Toast.LENGTH_LONG).show(); 

Я могу выбрать индивидуальный флажок, а затем тост, который был выбран. Мой вопрос в том, как я могу проверить/все предметы, когда я проверяю первый элемент в списке

Может ли кто-нибудь помочь мне разобраться, что мне нужно сделать дальше?

Заранее благодарю вас за помощь, это очень ценно.

ответ

2

Хотя ответ Эммануэля должен проверять флажки, нет уверенности в том, что ListView также будет знать, какие элементы отмечены, а какие нет. Чтобы быть в безопасности, я хотел бы использовать getCount() и setItemChecked() вместо:

for (int x = 0; x < smsListView.getCount(); x++) { 
    smsListView.setItemChecked (x, true); 
} 

Для снимите все, выполните тот же шаблон, но заменить true с false.

+1

Эй, @ A-C Я пробовал свой путь, и я получил его на работу, просто хотел сказать спасибо, за вашу помощь. – Randrm

+0

Добро пожаловать :-) Приятно слышать, что это работает! –

0

Ваш вопрос вместе с вашим кодом оставляют место для интерпретации. Из моей интерпретации, что будет вероятный ответ на вопрос:

int count = smsListView.getChildCount(); 
for (int i = 0; i < count; i++) { 
    CheckedTextView v = (CheckedTextView) smsListView.getChildAt(i); 
    v.setChecked(true); 
} 

Если это не то, что вам нужно, то просьба уточнить по этому вопросу.

+0

Почему бы не использовать ['setItemChecked()'] (http://developer.android.com/reference/android/widget/AbsListView.html#setItemChecked (int,% 20boolean)) вместо этого? –

+0

Привет, Эмануэль, я считаю, что мой код действительно оставляет место для интерпретации. Я пробовал свой путь, но, похоже, он не выбирает все, когда нажимается элемент. То, что я пытаюсь сделать, - это когда я проверяю первый флажок, я хочу, чтобы все флажки были проверены. – Randrm

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