我正在使用MVVM和DataBinding构建Android应用程序。我的ViewModel中有一个启动Activity的函数。 可以在ViewModel中使用onClick调用吗?Android MVVM的最佳实践startActivity
像这样。
public class MyViewModel {
public void onClick(View view, long productId) {
Context context = view.getContext();
Intent intent = new Intent(context, ProductDetailActivity.class);
intent.putExtra("productId", productId);
context.startActivity(intent);
}
}
在我的XML:
...
android:onClick="@{(v) -> viewModel.onClick(v, viewModel.product.id)}">
或者会是最好的做法在我的视图模型将其移动到视图和EventBus或Rx调用它,只有POJO?
“Viewmodel包含应用程序的核心业务逻辑,应该没有外部依赖关系。” - 我认为它总会有外部依赖。我没有看到使用ViewModel没有数据绑定的一点,它是特定于android的,只需检查示例import:“import android.databinding.ObservableBoolean;” – LLL