1

I'm creating an Android app with a ListView and I'm using this line:

SparseBooleanArray checkedPositions = list.getCheckedItemPositions();

Then I want to iterate over the array but only if there is at least a single value which is true in the checkedPositions array.

Can something like this be done?

4

3 回答 3

3

你不能这样做。但是您可以做的是创建另一种为您执行此操作的方法。

public boolean containsTrueValue(SparseBooleanArray sparseBooleanArray) {
    boolean containsBoolean = false;
    for (int i = 0; i < sparseBooleanArray.size(); i++) {
        if (sparseBooleanArray.valueAt(i) == true) {
            containsBoolean = true;
            break;
        }
    }
    return containsBoolean;
}
于 2015-07-05T14:16:20.477 回答
1

ListView有一个getCheckedItemCount(),所以与其检查你的,SparseBooleanArray你可以从你的ListView. 所以,你可以检查:

list.getCheckedItemCount() > 0
于 2015-07-05T14:28:55.957 回答
0

Java 中的 ArrayList 类有方法 contains。您可以将列表转换为 arrayList 并使用此方法。例子:

ArrayList<Boolean> array = new ArrayList();

        array.add(false);
        array.add(false);
        array.add(false);
        array.add(true);
        array.add(false);
        array.add(false);

        boolean contains = array.contains(true);

如果您执行此代码,包含变量将为真。

于 2015-07-05T14:33:09.217 回答