Как использовать SparseBooleanArray в Kotlin с CheckBox и RecyclerView - PullRequest
0 голосов
/ 18 октября 2019

Я нашел при прокрутке Recyclerview, он потерял состояния флажков. Вы можете использовать SparseBooleanArray для хранения целочисленных, логических значений. Я нашел код для Java в Интернете. Но как это сделать в Котлине? Почему SparseBooleanArray, что не так с HashMap?

1 Ответ

1 голос
/ 18 октября 2019

SparseArray может использоваться для замены HashMap, когда ключ является типом примитива. Есть несколько вариантов для различных типов ключей / значений, хотя не все из них общедоступны.

Преимущества:

  • Без выделения
  • Нет бокса

Работа с HashMap будет работать очень хорошо - однако может быть немного более производительным использовать вместо этого один из типов SparseArray.

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/util/SparseArray.java

Чтобы использовать SparseBooleanArray в Kotlin, вы можете использовать его так же, как и в Java:

val key = 1
val map = SparseBooleanArray()
map.put(key, true)
val value = map.get(key)

Если вы импортируете расширения ktx,Вы можете использовать аксессоры в стиле Kotlin, например:

map[key] = true
val value = map[key]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...