如何解决livedata中的函数观察器不起作用
我正在尝试使用Post方法(改造)从Api获得响应。但是观察者不起作用。我不明白这个错误。即使我在登录活动中实现了它,它仍然有效。不同之处在于这是在片段中完成的。 \ n您能帮我吗?
注意:我将KOIN用于DI。我尝试使用viewModel()和shareViewModel()初始化viewmodel。但他们没什么不同
在这里附上代码片段: Fragment.kt
viewModel.getKpp()?.observe(viewLifecycleOwner,Observer<KppResponse> {kpp ->
progress_bar_kpp.visibility = View.GONE //don't work from here
if (kpp.status == "false"){
tv_data_not_found.visibility = View.VISIBLE
} else {
kppAdapter.setKpp(kpp.data)
kppAdapter.notifyDataSetChanged()
} //up to here
})
with(rv_kpp){
layoutManager = LinearLayoutManager(activity)
setHasFixedSize(true)
adapter = kppAdapter
}
ViewModel.kt:
fun getKpp(): LiveData<KppResponse>? = dataRepository.getKppPost(nip,jabatan,unit)
Repository.kt:
override fun getKgbPost(nip: String,jabatan: String,unit: String): LiveData<KgbResponse>? {
val kgbResult = MutableLiveData<KgbResponse>()
remoteDatasource.getDataKgbPost(object : RemoteDatasource.KgbPostCallback{
override fun onResponse(kgb: KgbResponse?) {
kgbResult.postValue(kgb)
}
override fun throwable(t: Throwable) {
if (t.localizedMessage != null) {
Timber.e(t.localizedMessage!!)
}
}
},nip,unit)
return kgbResult
}
,在logcat中,我看到“ POST”成功。并提供以下响应: Screenshot Response in Logcat
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。