我已经在我的recyclerView中实现了一个跟踪器,并且工作正常。 我的问题是,当我向回收站中添加一些物品甚至更新整个适配器时,跟踪器将无法工作。
崩溃超出了从dataArray返回key
的范围,该数据在创建ChatItemKeyProvider
时传递给SelectionTracker
getKey
的代码是这样的:
@Nullable
override fun getKey(i: Int): String {
return mPokemonList[i]!!._id
}
到目前为止我已经尝试过的:
每次我向适配器添加一些数据时,我将适配器中的跟踪器设置为null,然后再次更新跟踪器,但是仍然崩溃。示例代码如下:
tracker = null
chatAdapter.setTracker(null)
tracker = SelectionTracker.Builder(
chatId,
chatRecycler,
ChatItemKeyProvider(newResult, myUserId),
ChatItemDetailsLookup(chatRecycler),
StorageStrategy.createStringStorage()
).withSelectionPredicate(
SelectionPredicates.createSelectAnything()
).build()
chatAdapter.setTracker(tracker)
我的问题是如何在更新数据时更新跟踪器?