Android LiveData不更新

Android LiveData不更新,android,android-livedata,mutablelivedata,Android,Android Livedata,Mutablelivedata,这是片段中的代码。所以基本上,我所做的是观察viewModel中的“请求”,在fragment中,我还将调用updateSearchType来更新currencySearchType。我希望一旦currencySearchType改变,那么viewmodel.requests也会改变。但事实证明这些请求再也不用打电话了。有人知道哪里出了问题吗?谢谢你的帮助 更改currencySearchType的值不会触发实时数据,而只是将其用作函数参数。您必须为此使用转换 class RequestVie

这是片段中的代码。所以基本上,我所做的是观察viewModel中的“请求”,在fragment中,我还将调用updateSearchType来更新currencySearchType。我希望一旦currencySearchType改变,那么viewmodel.requests也会改变。但事实证明这些请求再也不用打电话了。有人知道哪里出了问题吗?谢谢你的帮助

更改currencySearchType的值不会触发实时数据,而只是将其用作函数参数。您必须为此使用转换

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