MVVMとDataBindingを使用してAndroidアプリを構築しています。私はViewModel内でアクティビティを開始する関数を持っています。 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からそれを呼び出すためのベストプラクティスも、私のViewModelにのみPOJOを持っているでしょうか?
"Viewmodelにはアプリケーションのコアビジネスロジックが含まれているため、外部依存関係がなくてはなりません。 - 私はそれは常に外部の依存関係があると思う。私はデータバインディングなしでViewModelを使用する際にポイントが表示されません。それはAndroid固有のものです。例を確認してください。import: "import android.databinding.ObservableBoolean;" – LLL