다음과 같이 ListAdapter를 상속받은 RecyclerView 어댑터를 생성해서 RecyclerView 아이템(Item)을 추가하도록 메소드를 구현해서 실행했더니
class DataListAdapter: ListAdapter<String, DataListAdapter.ViewHolder>(diffUtil) {
fun addItem(position: Int) {
currentList.add(0, Item())
}
...
}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.work, PID: 22959
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableList.remove(Collections.java:1359)
UnsupportedOperationException 에러인데, currentList는 read-only 리스트라서 add, remove 등 리스트에 변화를 줄 때 발생한다.
currentList를 직접 변경하지 않고, 새로운 List에 currentList를 복사하여 아이템을 추가해주면 된다.
class DataListAdapter: ListAdapter<String, DataListAdapter.ViewHolder>(diffUtil) {
fun addItem(position: Int) {
val dataList = ArrayList<Item>(currentList)
dataList.add(0, Item())
}
...
}