我正在使用Android数据绑定,我想从编辑文本数据中创建一个可观察对象,以便我可以使用RxJava对其执行操作。
这是我的代码。
XML如下:
<EditText
android:id="@+id/edit_text_username"
android:layout_width="match_parent"
android:addTextChangedListener="@{viewModel.getUsername}"
android:background="@drawable/border_edit_top"
android:drawableLeft="@drawable/ic_person_white_24px"
android:drawablePadding="10dp"
android:drawableStart="@drawable/ic_person_white_24px"
android:hint="@string/username"
android:inputType="text"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
app:layout_heightPercent="10%" />
The ViewModel Class
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) {
}
};
}
我有三个编辑文本框,我想使用RxJava的combinelatest运算符进行表单验证。在这种情况下,我该如何实现RxJava?
TextWatcher
而不通过getter方法吗?像这样public TextWatcher textWatcher = new TextWatcher(...)
和android:addTextChangedListener="@{viewModel.textWatcher}"
。我觉得你还可以为TextWatcher
创建一个公共的getter方法,并将字段自身设为私有。 - yennsarah