在MVVM中获取观察者中的数据并添加到列表中的解决方法如下:
public class MyViewModel extends ViewModel {
private MutableLiveData> itemList;
public LiveData> getItemList() {
if (itemList == null) {
itemList = new MutableLiveData<>();
loadItems();
}
return itemList;
}
private void loadItems() {
// 从数据源加载数据并设置到itemList
}
}
public class MyActivity extends AppCompatActivity {
private MyAdapter adapter;
private RecyclerView recyclerView;
private MyViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
adapter = new MyAdapter();
recyclerView.setAdapter(adapter);
viewModel = new ViewModelProvider(this).get(MyViewModel.class);
viewModel.getItemList().observe(this, new Observer>() {
@Override
public void onChanged(List- items) {
adapter.setItems(items);
}
});
}
}
notifyDataSetChanged()
方法来通知RecyclerView刷新数据。例如:public class MyAdapter extends RecyclerView.Adapter {
private List- items;
public void setItems(List
- items) {
this.items = items;
notifyDataSetChanged();
}
// 其他方法...
static class ViewHolder extends RecyclerView.ViewHolder {
// ViewHolder的代码...
}
}
通过以上步骤,你就可以在MVVM架构中获取观察者中的数据,并将其添加到列表中。