如何清除列表适配器中的数据



我想清除ListAdapter中的所有数据时出现以下错误

java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.clear(Collections.java:1116)
at com.zhixin.wedeep.homepage.ui.AudioPlayerActivity$onComment$$inlined$apply$lambda$3$1$1.onChanged(AudioPlayerActivity.kt:300)
at com.zhixin.wedeep.homepage.ui.AudioPlayerActivity$onComment$$inlined$apply$lambda$3$1$1.onChanged(AudioPlayerActivity.kt:60)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:149)
at androidx.lifecycle.LiveData.setValue(LiveData.java:307)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveDataScopeImpl$emit$2.invokeSuspend(CoroutineLiveData.kt:97)

错误发生在此行this.currentList.clear()

(recyclerView.adapter as CommentAdapter).apply {
this.currentList.clear()
submitList(it.data!!.items)
}

谁对这个问题有想法,感谢!

问题解决了,代码如下

(recyclerView.adapter as CommentAdapter).apply {
submitList(null)
submitList(it.data!!.items)
}

当你调用this时,它引用适配器而不是在你的列表中!

您应该在列表上调用.clear()而不是在回收器视图适配器上调用,因为它是 Arraylist 而不是回收器视图适配器的方法。

currentList.clear()

不要忘记通知

this.notifyDataSetChanged();

简单的例子:

https://android--code.blogspot.com/2015/08/android-listview-remove-all-items.html

最新更新