我有一个recyclerview,它的行中有一个复选框,在我检入每个项目后,我将其添加到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
}
}
我解决了它,检查当前订单列表的大小是否与已检查列表相同,如果相等,则意味着已检查列表中的所有项目
在全球范围内保持计数器。