检查SparseBooleanArray中是否至少有一个真值

时间:2015-07-05 14:07:34

标签: java android sparse-array

我正在创建一个ListView的Android应用,我正在使用此行:

SparseBooleanArray checkedPositions = list.getCheckedItemPositions();

然后我想遍历数组,但只有在checkedPositions数组中至少有一个值为真时才会迭代。

可以这样做吗?

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

ListView有一个getCheckedItemCount(),因此您可以通过SparseBooleanArray检查ListView,而不是检查list.getCheckedItemCount() > 0 。所以,你可以查一下:

vector<MYdatatype> myVector;

答案 2 :(得分:0)

Java中的ArrayList类有方法包含。您可以将列表转换为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);
如果执行此代码,

包含变量将为true。