Я знаю Android MVVM, LiveData и DataBinding.Но у меня есть сценарий, в котором у меня есть много полей ввода пользовательского интерфейса, таких как электронная почта, пароль, подтверждение пароля и т. Д. Я могу сопоставить эти поля с помощью ViewModel.
public class LoginViewModel extends ViewModel {
public MutableLiveData<String> email = new MutableLiveData<>();
public MutableLiveData<String> password = new MutableLiveData<>();
.
.
.
}
Я связал эту LoginViewModel с помощью следующего XMLlayout.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="loginViewModel"
type="viewModel.LoginViewModel" />
</data>
<RelativeLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".view.MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress"
android:text="@={loginViewModel.email}" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText"
android:ems="10"
android:inputType="textPassword"
android:text="@={loginViewModel.password}" />
</RelativeLayout>
</layout>
На самом деле, у меня есть больше полей пользовательского интерфейса, так какой идеальный подход я должен придерживаться?Независимо от того, чтобы объявить точно такие же LiveData в ViewModel на основе моего пользовательского интерфейса.Как 10 полей пользовательского интерфейса должны иметь 10 LiveData в ViewModel.