您可以使用以下代码示例来向 MutableLiveData 添加新项并进行观察:
首先,在您的 ViewModel 类中创建一个 MutableLiveData 对象,并定义一个公共方法来添加新项:
public class MyViewModel extends ViewModel {
private MutableLiveData> mutableLiveData = new MutableLiveData<>();
public LiveData> getLiveData() {
return mutableLiveData;
}
public void addItem(String item) {
List currentList = mutableLiveData.getValue();
if (currentList == null) {
currentList = new ArrayList<>();
}
currentList.add(item);
mutableLiveData.setValue(currentList);
}
}
然后,在您的 Activity 或 Fragment 中,使用 ViewModelProvider 获取 ViewModel 实例,并观察 LiveData 对象的变化:
public class MainActivity extends AppCompatActivity {
private MyViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewModel = new ViewModelProvider(this).get(MyViewModel.class);
viewModel.getLiveData().observe(this, new Observer>() {
@Override
public void onChanged(List list) {
// 在这里处理 LiveData 对象的变化
// 每当新项被添加时,该方法将被调用
}
});
// 添加新项到 MutableLiveData
viewModel.addItem("New Item");
}
}
这样,当您调用 addItem()
方法来添加新项时,观察者中的 onChanged()
方法将会被调用,并且您可以在该方法中处理 LiveData 对象的变化。