Я создаю приложение для Android с использованием MVVM и DataBinding. И у меня есть функция внутри моей ViewModel, которая запускает Activity. Можно ли иметь вызов onClick внутри ViewModel?Лучшая практика для 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 содержит основную бизнес-логику вашего приложения и не должна иметь внешних зависимостей». - Я думаю, что он всегда будет иметь внешние зависимости. Я не вижу смысла использовать ViewModel без привязки данных, и он специфичен для Android, просто проверьте импорт экземпляра: «import android.databinding.ObservableBoolean;» – LLL