【问题标题】:Android kotlin mvvm update live dataAndroid kotlin mvvm 更新实时数据
【发布时间】:2021-06-17 08:39:17
【问题描述】:

如何在 kotlin 中更新可变的实时数据

以下是我在 viewModel 中的实体

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

下面是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



)

我想更新索引 MutableList 处的项目?从搜索结果无法做到这一点。如何更新实时数据?

【问题讨论】:

    标签: android kotlin android-livedata android-mvvm mutablelivedata


    【解决方案1】:

    你的ViewModel 应该有两个值

    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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-14
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2018-11-03
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多