MVVM 및 DataBinding을 사용하여 Android 앱을 제작 중입니다. 그리고 Activity를 시작하는 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)}">
또는 그것이 가장 좋은 방법은 내 뷰 모델 만 POJO를보기로 이동하고 EventBus 또는 수신에서 호출하고이하는 것? ViewModel
안에 넣어 절대적으로 완벽
"Viewmodel에는 앱의 핵심 비즈니스 로직이 포함되어 있으므로 외부 종속성이 없어야합니다." 나는 항상 외부 의존성을 가질 것이라고 생각한다. 내가 데이터 바인딩없이 ViewModel을 사용하여 지점을 볼 수 없어 그것은 안드로이드 특정, 그냥 예를 확인하십시오 가져 오기 : "import android.databinding.ObservableBoolean;" – LLL