对不起,我一开始误解了这个问题。
您没有收到更改,因为您从未打过电话
setValue
在…上
mCountryList
。
方法
getCountryList()
正在返回新对象
MutableLiveData<List<CountryModel>> lstResult
它所称的一切,没有人观察到。
解决方案:
而不是返回
MutableLiveData
对象具有
getCountryList
设置
McCountryList公司
在里面
onResponse()
。
密码
public void init(){
mCountryList = new MutableLiveData<>();
myRetrofitClient = new MyRetrofitClient();
myRetrofitClient.getCountryList();
pollCountryList();
}
public LiveData<List<CountryModel>> getCountryListener() {
return mCountryList;
}
public void getCountryList(){
MockServiceInterface serviceInterface = mRetrofit.create(MockServiceInterface.class);
Call<List<CountryModel>> countryList = serviceInterface.getCountryList();
countryList.enqueue(new Callback<List<CountryModel>>() {
@Override
public void onResponse(Call<List<CountryModel>> call, Response<List<CountryModel>> response) {
if (response.isSuccessful()){
List<CountryModel> lstResponse = response.body();
mCountryList.setValue(lstResponse);
}else {
System.out.print(response.errorBody());
}
}
@Override
public void onFailure(Call<List<CountryModel>> call, Throwable t) {
t.printStackTrace();
}
});
}
使用
getCountryListener()
观察。
活动:
countryViewModel.getCountryListener().observe(this,myObserver);