【发布时间】:2017-01-13 17:24:58
【问题描述】:
我正在使用数据绑定库,我得到了它,但有些问题我似乎无法得到。对于初学者
这是我的 xml 布局 activity_login.xml 的一部分
<data>
<variable
name="viewModel"
type="com.ViewModel.LoginViewModel" />
</data>
<EditText
android:id="@+id/edit_text_username_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
android:imeOptions="actionNext"
android:inputType="text"
android:textSize="15sp"
android:theme="@style/EditTextTheme"
app:addTextChangedListener="@{viewModel.getUsername}" />
我的 ViewModel 包含
public TextWatcher getUsername() {
return new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i("username", s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
};
}
上面的代码是在用户键入时获取用户名。这是使用数据绑定的正确方法还是我做错了?上面的代码完美运行。 问题是当我尝试按照我在网上找到的方式进行操作时,即添加
android:addTextChangedListener="@{viewModel.getUsername}"
它不起作用,我收到一条警告说未知属性,如果我尝试编译它,我得到一个数据绑定不存在错误。我也在使用一个包含 2 个单选按钮的单选按钮,我想获取选择了哪个单选按钮使用数据绑定。我找到了使用我尝试使用的 android:onCheckedChanged 的在线资源,但我再次收到错误消息,说绑定不存在且属性未知
【问题讨论】:
-
也发布您的错误。特别是它说未知属性的部分。也许它只使用
viewModel.username。
标签: android data-binding onclicklistener android-databinding 2-way-object-databinding