Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Kotlin中使用带有复选框和RecyclerView的SparseBooleanArray_Android_Kotlin_Checkbox_Android Recyclerview - Fatal编程技术网

Android 如何在Kotlin中使用带有复选框和RecyclerView的SparseBooleanArray

Android 如何在Kotlin中使用带有复选框和RecyclerView的SparseBooleanArray,android,kotlin,checkbox,android-recyclerview,Android,Kotlin,Checkbox,Android Recyclerview,我发现在滚动Recyclerview时,它丢失了复选框状态。您可以使用SparseBooleanArray存储整数值和布尔值。我在网上找到了Java代码。但在科特林如何做到这一点?为什么使用SparseBooleanArray,HashMap有什么问题?SparseArray可用于在键为基元类型时替换HashMap。不同的键/值类型有一些变体,尽管并非所有的都是公开的 好处是: 免费分配 禁止拳击 使用HashMap可以很好地工作,但是使用一种SparseArray类型可以稍微提高性能 为

我发现在滚动Recyclerview时,它丢失了复选框状态。您可以使用SparseBooleanArray存储整数值和布尔值。我在网上找到了Java代码。但在科特林如何做到这一点?为什么使用SparseBooleanArray,HashMap有什么问题?

SparseArray
可用于在键为基元类型时替换
HashMap
。不同的键/值类型有一些变体,尽管并非所有的都是公开的

好处是:

  • 免费分配
  • 禁止拳击
使用HashMap可以很好地工作,但是使用一种SparseArray类型可以稍微提高性能

为了在Kotlin中使用SparseBooleanArray,您可以像在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]

我的问题是如何在Kotlin中使用sparseBooleanArray?编写
映射[key]
是否真的需要额外的依赖关系?“Kotlin允许使用具有正确名称和签名的任何Java方法作为运算符重载和其他约定(invoke()等)。”()