【问题标题】:How to check all Items in an ArrayList?如何检查 ArrayList 中的所有项目?
【发布时间】:2013-02-17 08:21:48
【问题描述】:

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

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

谁能帮我弄清楚我接下来需要做什么?

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

【问题讨论】:

    标签: java android checkbox arraylist android-listview


    【解决方案1】:

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

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

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

    【讨论】:

    • 为什么不改用setItemChecked()
    • 您好伊曼纽尔,我相信您的代码确实留下了一些解释空间我确实尝试过您的方式,但单击该项目时似乎并没有选择所有内容。我想要做的是,当我选中第一个复选框时,我希望所有的框都被选中。
    【解决方案2】:

    虽然 Emanuel 的回答应该勾选复选框,但无法确定 ListView 是否也知道哪些项目被选中,哪些没有。为了安全起见,我会改用getCount()setItemChecked()

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

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

    【讨论】:

    • 嘿@A-C 我尝试了你的方法,我成功了,只是想说谢谢你的帮助。
    猜你喜欢
    • 2012-07-14
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多