Tôi đang xây dựng một Ứng dụng Android bằng MVVM và DataBinding. Và tôi có một chức năng bên trong ViewModel của tôi bắt đầu Hoạt động. Bạn có thể thực hiện cuộc gọi onClick bên trong ViewModel không?Thực tiễn tốt nhất cho Android MVVM startActivity
Như thế này.
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);
}
}
Và trong XML của tôi:
...
android:onClick="@{(v) -> viewModel.onClick(v, viewModel.product.id)}">
Hoặc nó sẽ là một thực hành tốt nhất để di chuyển nó vào Xem và gọi nó là từ EventBus hoặc Rx và chỉ có POJO trong ViewModel của tôi?
"Chế độ xem có chứa logic nghiệp vụ cốt lõi của ứng dụng của bạn và không có phụ thuộc bên ngoài." - Tôi nghĩ rằng nó sẽ luôn luôn có phụ thuộc bên ngoài. Tôi không thấy một điểm trong việc sử dụng ViewModel mà không cần databinding và nó là android cụ thể, chỉ cần kiểm tra nhập khẩu ví dụ: "import android.databinding.ObservableBoolean;" – LLL