Android LiveData不更新
这是片段中的代码。所以基本上,我所做的是观察viewModel中的“请求”,在fragment中,我还将调用updateSearchType来更新currencySearchType。我希望一旦currencySearchType改变,那么viewmodel.requests也会改变。但事实证明这些请求再也不用打电话了。有人知道哪里出了问题吗?谢谢你的帮助 更改currencySearchType的值不会触发实时数据,而只是将其用作函数参数。您必须为此使用转换Android LiveData不更新,android,android-livedata,mutablelivedata,Android,Android Livedata,Mutablelivedata,这是片段中的代码。所以基本上,我所做的是观察viewModel中的“请求”,在fragment中,我还将调用updateSearchType来更新currencySearchType。我希望一旦currencySearchType改变,那么viewmodel.requests也会改变。但事实证明这些请求再也不用打电话了。有人知道哪里出了问题吗?谢谢你的帮助 更改currencySearchType的值不会触发实时数据,而只是将其用作函数参数。您必须为此使用转换 class RequestVie
class RequestViewModel(私有val存储库:RequestRepository):ViewModel(){
//请求货币类型
lateinit变量currencySearchType:字符串
val请求:LiveData=Transformations.switchMap(currencySearchType){repository.getRequests(it)}
fun updateSearchType(类型:字符串){
currencySearchType=类型
}}
更改currencySearchType的值不会触发实时数据,而只是将其用作函数参数。您必须为此使用转换
class RequestViewModel(私有val存储库:RequestRepository):ViewModel(){
//请求货币类型
lateinit变量currencySearchType:字符串
val请求:LiveData=Transformations.switchMap(currencySearchType){repository.getRequests(it)}
fun updateSearchType(类型:字符串){
currencySearchType=类型
}}
此initAdapter在onActivityCreated内部调用。此initAdapter在onActivityCreated内部调用。非常感谢!有一些拼写错误,但我明白了。非常感谢!val requests:LiveData=Transformations.switchMap(currencySearchType){repository.getRequests(it)}感谢您的反馈,并为我刚才键入的错误感到抱歉,我只是在这里键入了答案,所以如果有语法错误,也要清除语法错误@瑞安肯桑太棒了!有一些拼写错误,但我明白了。非常感谢!val requests:LiveData=Transformations.switchMap(currencySearchType){repository.getRequests(it)}感谢您的反馈,并为我刚才键入的错误感到抱歉,我只是在这里键入了答案,所以如果有语法错误,也要清除语法错误@兰钦
class RequestViewModel(private val repository: RequestRepository) : ViewModel() {
// request currency type
private val currencySearchType = MutableLiveData<String>()
val requests: LiveData<PagedList<Request>> = repository.getRequests(currencySearchType.value!!)
fun updateSearchType(type: String) {
currencySearchType.postValue(type)
}}
private fun initAdapter() {
recyclerView.adapter = adapter
viewModel.requests.observe(viewLifecycleOwner, Observer {
adapter.submitList(it)
})
}
class RequestViewModel(private val repository: RequestRepository) : ViewModel() {
// request currency type
lateinit var currencySearchType:String
val requests: LiveData<PagedList<Request>> = Transformations.switchMap(currencySearchType) { repository.getRequests(it) }
fun updateSearchType(type: String) {
currencySearchType = type
}}