我想清除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