如何检查ArrayList中的所有项?

时间:2013-03-03 01:10:38

标签: java android checkbox arraylist android-listview

我从SQLite数据库中读取了文本消息,然后将其放在一个数组列表中,该列表在simple_list_item_multiple_choice

中显示给用户

这就是我目前检查列表中的单个项目的方式。(此代码在我的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 个答案:

答案 0 :(得分:2)

虽然Emanuel的答案应该勾选复选框,但是ListView也不知道哪些项目被检查,哪些项目没有。为安全起见,我会改为使用getCount()setItemChecked()

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

要取消选中所有内容,请使用相同的模板,但将true替换为false

答案 1 :(得分:0)

您的问题与您的代码一起留下了一些解释空间。 根据我的解释,这可能是问题的答案:

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

如果那不是您所需要的,请详细说明问题。