在Yigit博伊尔和乔治·芒特对Android的数据绑定的谈话,他们说明它是多么容易绑定到TextWatcher的onTextChanged(在13:41).在按钮上.他们的幻灯片错了吗?首先,ButtonView没有onTextChanged属性.它既没有setOnTextChanged方法.也没有EditText.但他们都有addTextChangedListener一个TextWatcher输入.
那他们在说什么呢?他们是如何做到的呢?他们的示例代码无法编译,但会出现此错误:
Error:(17) No resource identifier found for attribute 'onTextChanged' in package 'android'
Run Code Online (Sandbox Code Playgroud)
如何使用Android Databinding框架绑定到任何View或特别是EditText上的"Text Changed Event"?
我正在尝试使用单选按钮的两种方式数据绑定。它可以通过如下所示的一种方式正常工作,
android:checked="@{registration.gender.equals(Gender.FEMALE.getValue())}"。
但我的问题是,我需要在模型中设置所选单选按钮的值。
<?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>
<import type="com.callhealth.customer.comman.enums.Gender" />
<import type="android.text.TextUtils" />
<import type="java.lang.Integer" />
<variable name="callback" type="com.callhealth.customer.usermanagement.callback.RegistrationCallback" />
<variable name="registration" type="com.callhealth.customer.usermanagement.model.request.LoginAndRegistrationRequestModel" />
</data>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/label_gender" android:textSize="15sp" />
<RadioGroup android:id="@+id/gender_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:orientation="horizontal">
<android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:checked="@={registration.gender.equals(Gender.MALE.getValue())}" android:layout_height="wrap_content" android:text="@string/label_male" />
<android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginStart="20dp" android:checked="@={registration.gender.equals(Gender.FEMALE.getValue())}" android:text="@string/label_female" />
</RadioGroup>
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
我的模特班
public class LoginAndRegistrationRequestModel extends BaseObservable {
private Integer gender;
@Bindable
public Integer getGender() {
return …Run Code Online (Sandbox Code Playgroud)