【发布时间】:2019-05-12 19:02:19
【问题描述】:
我正在尝试使用一些数据绑定来建立一个 MVVM 结构。
我已经为视图创建了以下 xml 文件(示例):
<data>
<variable
name="LoginVM"
type="org.ledeme.animekeeper.LogginMV"/>
<EditText
android:id = "@+id/input_loggin"
android:text="@{LoginVM.username}"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginTop="200sp"
android:layout_centerHorizontal="true"
android:hint="@string/login"
android:width="200sp"
android:inputType="text"
android:textAlignment="center"
android:singleLine="true"
android:lines="1"
android:maxLines="1"
/>
在View Model(我的叫LogginMV)中,我定义了一个
private ObservableField<String> username = new ObservableField<>("");
将用户输入的文本绑定到username
我使用username.get() 尝试获取用户名,但我只得到""(我知道这是由于new ObservableField<>("") 中括号之间的值,如果它是“test”,我会得到“test ")
我确实创建了一个 getter 和 setter,如下所示:
public String getUsername(){
return username.get();
}
public void setUsername(ObservableField<String> username) {
this.username = username;
this.username.notifyChange();
}
我的问题是我不知道如何正确进行绑定,所以我得到的是用户输入的内容,而不是我在 new ObservableField<>("") 中定义的内容。
【问题讨论】:
标签: java android data-binding