问题描述
我正在尝试使用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 (将#修改为@)