在AAC(Android Architecture Components)中,可以使用LiveData来将结果从ViewModel返回给Activity。下面是一个示例解决方法:
在ViewModel中,首先创建一个LiveData对象,用于保存结果:
private MutableLiveData resultLiveData = new MutableLiveData<>();
public LiveData getResultLiveData() {
return resultLiveData;
}
然后,在ViewModel中处理点击事件,并将结果更新到LiveData中:
public void handleClick() {
// 处理点击事件,并获得结果
String result = "点击处理的结果";
// 更新LiveData的值
resultLiveData.setValue(result);
}
在Activity中,通过观察ViewModel中的LiveData,可以获取到结果:
// 在Activity中获取ViewModel实例
MyViewModel viewModel = ViewModelProviders.of(this).get(MyViewModel.class);
// 观察LiveData
viewModel.getResultLiveData().observe(this, new Observer() {
@Override
public void onChanged(@Nullable String result) {
// 处理结果
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
这样,当在ViewModel中处理点击事件并更新LiveData的值时,Activity中的观察者会收到通知,并可以进行相应的处理。