Я пытаюсь реализовать Viewmodel и Live-архитектуру данных. но я не могу этого сделать. Может кто-нибудь, пожалуйста, помогите мне в этом. ниже приведен код, с которым я пытался я не понимаю, как добавить данные JSON в список и показать адаптер и просмотрщик recyclerview.
модель класса:
public class User {
private String id;
private String name;
private String address;
private String createdAt;
private String updatedAt;
public User() {
}
public User(String name, String address) {
this.name = name;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCreatedAt() {
return createdAt;
}
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
public String getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(String updatedAt) {
this.updatedAt = updatedAt;
}
}
UsersViewModel:
public class UsersViewModel extends ViewModel {
AsyncTaskTest asyncTask;
Context context;
private LiveData<ArrayList<User>> list1 = null;
UsersViewModel(Context context){
list1=loadUsers();
}
private LiveData<ArrayList<User>> list;
public LiveData<ArrayList<User>> user(){
if (list==null){
list=loadUsers();
}
return list;
}
private LiveData<ArrayList<User>> loadUsers(){
String query;
try {
query= URLEncoder.encode("getChatRooms","UTF-8")+"="+URLEncoder.encode("getChatRooms","UTF-8");
asyncTask=new AsyncTaskTest(/*context, */new AsyncTaskResult() {
@Override
public void AsyncTaskResult(String result) throws JSONException {
// list1=new ArrayList<>();
Log.v("DFJGHK",result);
JSONObject jsonObject=new JSONObject(result);
JSONArray jsonArray=jsonObject.getJSONArray("result");
for (int i=0;i<jsonArray.length();i++){
JSONObject object=jsonArray.optJSONObject(i);
}
}
});
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"POST","mobileApi/chatRooms",query);
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return list1;
}
}
активность:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_show);
recyclerView=(RecyclerView)findViewById(R.id.recyclerViewId);
viewModel= ViewModelProviders.of(this).get(UsersViewModel.class);
viewModel.user();
}
Я искал в Интернете, но не нашел хорошего ресурса или, может быть, не очень хорошо понял. Мне нужна помощь, пожалуйста.