-1

How to update mutable live data in kotlin

following is my entity in viewModel

 private val searchResult = MutableLiveData<Resource<SearchResult?>>()

following is searchResult pojo

data class SearchResult(

@field:SerializedName("Response")
val response: String? = null,

@field:SerializedName("totalResults")
val totalResults: String? = null,

@field:SerializedName("Search")
val search: MutableList<SearchItem?>? = null
)

@Entity(tableName = "searchitem")
data class SearchItem(


@ColumnInfo(name = "type")
@field:SerializedName("Type")
var type: String = "",

@ColumnInfo(name = "year")
@field:SerializedName("Year")
var year: String = "",

@ColumnInfo(name = "id")
@PrimaryKey
@field:SerializedName("imdbID")
var imdbID: String = "",

@ColumnInfo(name = "poster")
@field:SerializedName("Poster")
var poster: String = "",

@ColumnInfo(name = "title")
@field:SerializedName("Title")
var title: String = "",

@ColumnInfo(name = "isfav")
var isFav: Boolean = false



)

I want to update item at index MutableList<SearchItem?>? from Search result unable to do it. How to update live data?

amodkanthe
  • 4,345
  • 6
  • 36
  • 77

1 Answers1

1

Your ViewModel should have two values for instance

class SearchViewModel() : ViewModel() {
    private val _searchResult = MutableLiveData<Resource<SearchResult?>>()
    val searchResult: LiveData<MutableList<Resource<SearchResult?>>>
        get() = _searchResult

    fun updateItem(index: Int){
         _searchResult.value?[index] = do whatever here
         _searchResult.value = _searchResult.value
    }
}
Skizo-ozᴉʞS ツ
  • 19,464
  • 18
  • 81
  • 148