要实现 Android ViewModel 到 Model 的事件传递,可以使用以下方法:
public interface OnDataChangedListener {
void onDataChanged(String newData);
}
public class Model {
private OnDataChangedListener onDataChangedListener;
public void setOnDataChangedListener(OnDataChangedListener listener) {
this.onDataChangedListener = listener;
}
public void doSomeAction() {
// 执行某些操作
String newData = "新的数据";
// 触发事件回调
if (onDataChangedListener != null) {
onDataChangedListener.onDataChanged(newData);
}
}
}
public class MyViewModel extends ViewModel implements OnDataChangedListener {
private Model model;
// ViewModel 初始化时创建 Model 对象
public MyViewModel() {
model = new Model();
}
// 在需要监听事件的地方注册监听器
public void startListening() {
model.setOnDataChangedListener(this);
}
// 在不需要监听事件的地方注销监听器
public void stopListening() {
model.setOnDataChangedListener(null);
}
// 实现事件回调方法
@Override
public void onDataChanged(String newData) {
// 处理事件
}
}
这样,当 Model 中的某个操作触发事件时,ViewModel 就会收到事件回调,并可以根据需要进行处理。