【发布时间】:2019-03-28 10:58:48
【问题描述】:
我知道 Android MVVM、LiveData 和 DataBinding。但是,我有一个场景,其中我有许多输入 UI 字段,例如电子邮件、密码、确认密码等。我可以使用 ViewModel 映射这些字段。
public class LoginViewModel extends ViewModel {
public MutableLiveData<String> email = new MutableLiveData<>();
public MutableLiveData<String> password = new MutableLiveData<>();
.
.
.
}
我用下面的 XML 布局绑定了这个 LoginViewModel。
<?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>
实际上,我有更多的 UI 字段,那么我应该遵循哪种理想的方法?是否根据我的 UI 在 ViewModel 中声明完全相同的 LiveData。就像 10 个 UI 字段在 ViewModel 中应该有 10 个 LiveData。
【问题讨论】:
-
点击此链接这些对我有帮助medium.com/halcyon-mobile/…
-
@AravindV 感谢您的参考。实际上,我知道 LiveData 和数据绑定。您的链接没有传达我的问题的答案。
标签: android mvvm android-databinding android-livedata