I am trying to update ArrayList which is inside in MutableLiveData. whenever I change the content in ArrayList, ListAdapter is not updating.
ViewModel
private var _tileNumberList:MutableLiveData<ArrayList<TileNumber>> = MutableLiveData()
var tempTileNumberList: ArrayList<TileNumber> = ArrayList()
val tileNumberList:LiveData<ArrayList<TileNumber>>
get() = _tileNumberList
init {
for (i in 1..9){
for (j in 1..9){
//tileNumberList.add(TileNumber(0,i,j))
tempTileNumberList.add(TileNumber(0,i,j))
}
}
fun onStart() {
tempTileNumberList[count].number = 8
_tileNumberList.value = tempTileNumberList
count++
}
whenever I call onStart method list values changes but ListAdapter not updating with latest values
MainActivity
backTrackingViewModel.tileNumberList.observe(this, Observer {
it?.let {
//adapter.submitList(null)
adapter.submitList( it)
}
Toast.makeText(
applicationContext,
"Hey",
Toast.LENGTH_SHORT
).show()
})
when i set adapter.submitList(null) then my ListAdapter is updating
TileNumber
data class TileNumber(var number:Int,val row:Int,val column:Int) {
}
I tried this link references but didn't work
ListAdapter not updating item in RecyclerView
https://stackoverflow.com/a/50062174/6925888 (this is not a good solution)