Проверить, есть ли хотя бы одно истинное значение в 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, если вы выполните этот код.