Как узнать, проверены ли все элементы в списке - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть окно повторного просмотра, в котором есть флажок в строке, после того, как я проверяю каждый элемент, я добавляю его к SparseBooleanArray, это позволяет мне сохранять положение отмеченного элемента и значение (true or false), теперь, после Я делаю это, я выполняю итерацию внутри этого BooleanArray, чтобы получить каждый проверенный элемент (true), но теперь я хочу знать, как узнать, что все элементы были проверены, этот код просто вызывает элемент за элементом и знает, какой из них является правда или нет, но мне нужно знать, когда проверяются все элементы или нет.

class MyAdapter() {

val map = SparseBooleanArray()

 fun getCheckedArray():SparseBooleanArray = map
 fun getCart(): MutableList<Cart> = cartList

 inner class OrdersInnerViewHolder(itemView: View): BaseViewHolder<Cart>(itemView){
        override fun bind(item: Cart, position: Int) {

            itemView.checkBox.isChecked = item.isChecked

            itemView.checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
                item.isChecked = isChecked
                if(isChecked){
                 map.put(position,true)
                }else{
                    map.removeAt(position)
                }
            }
        }
    }

Тогда я просто получаю этот sparsearray и проверяю для каждой записи, является ли она истинной (что будет, поскольку она хранит только истину). только значения, но мне нужно знать, если все значения этого списка были проверены, чтобы продолжить)

  for((index, item) in myAdapter.getCart().withIndex()){
                    if(myAdapter.getCheckedArray().get(index)){
                      //Here I will get elements that are true, I need to know if all elements has been checked
                    }
                }

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Сохранение счетчика на глобальном уровне.

-> Для каждого отмеченного элемента чек увеличивает его на 1

-> Для каждого отмеченного элемента снимите флажок, уменьшите его на 1

-> Если вы хотите проверить, все ли элементы не отмечены, проверьте значение глобальной переменной == 0

-> Если вы хотите проверить, все ли элементы отмечены, проверьте значение глобальной переменной == lisg.size

0 голосов
/ 14 апреля 2020

Я решил проверить, совпадает ли размер текущего списка заказов с проверенным списком, если они равны, это означает, что все элементы в списке были проверены

 var areAllItemsChecked = false
            for((index, item) in myAdapter.getCart().withIndex()){
                if(myAdapter.getCheckedArray().get(index)){
                    areAllItemsChecked = myAdapter.getCart().size == myAdapter.getCheckedArray().size()
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...