我正在使用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