Answer the question
In order to leave comments, you need to log in
Why is LiveData value null?
MainActivity
mViewModel = ViewModelProviders.of(this).get(ListIssueViewModel.class);
mViewModel.getApiResponse().observe(this, apiResponse -> {
mAdapter.addIssues(apiResponse.getIssues());
});
mViewModel.loadIssues("square", "retrofit");
private MediatorLiveData<ApiResponse> mApiResponse = new MediatorLiveData<>();
public void loadIssues(String user, String repo){
mApiResponse.addSource(
mIssueRepository.getIssues(user, repo),
new Observer<ApiResponse>() {
@Override
public void onChanged(ApiResponse apiResponse) {
mApiResponse.setValue(apiResponse);
}
});
}
@Override
public LiveData<ApiResponse> getIssues(String owner, String repo) {
final MutableLiveData<ApiResponse> liveData = new MutableLiveData<>();
Call<List<Issue>> call = mApiService.getIssues(owner, repo);
call.enqueue(new Callback<List<Issue>>() {
@Override
public void onResponse(Call<List<Issue>> call, Response<List<Issue>> response) {
liveData.setValue(new ApiResponse(response.body()));
}
@Override
public void onFailure(Call<List<Issue>> call, Throwable t) {
liveData.setValue(new ApiResponse(t));
}
});
return liveData;
}
private MutableLiveData<ApiResponse> mApiResponse = new MutableLiveData<>();
public void loadIssues(String user, String repo){
LiveData<ApiResponse> livedata = mIssueRepository.getIssues(user, repo);
mApiResponse.setValue(livedata.getValue());
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question