Проверить, есть ли хотя бы одно истинное значение в SparseBooleanArray

Я создаю приложение для Android с ListView и я использую эту строку:

SparseBooleanArray checkedPositions = list.getCheckedItemPositions();

Затем я хочу перебрать массив, но только если есть хотя бы одно значение, которое истинно в checkedPositions массив.

Можно ли что-то подобное сделать?

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;
}

ListView имеет getCheckedItemCount()так что вместо того, чтобы проверять SparseBooleanArray вы могли бы решить это из вашего ListView, Итак, вы можете проверить:

list.getCheckedItemCount() > 0

У класса ArrayList в Java есть метод, содержащий. Вы можете привести свой список к 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, если вы выполните этот код.

Другие вопросы по тегам