2

我从 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();

我可以选择单个复选框,然后为已选择的内容敬酒。我的问题是当我检查列表中的第一项时如何检查/所有项目

谁能帮我弄清楚下一步我需要做什么?

提前感谢您的帮助,非常感谢。

4

2 回答 2

2

尽管伊曼纽尔的回答应该使复选框被选中,但不能确定 ListView 也会知道哪些项目被选中,哪些未被选中。为了安全起见,我会使用getCount()andsetItemChecked()代替:

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

要取消选中所有内容,请遵循相同的模板,但将 替换truefalse

于 2013-03-03T02:11:20.030 回答
0

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

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

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

于 2013-03-03T01:52:43.293 回答