LiveData довольно удобна для привязки к твию, однако я использовал мой diy-бин, такой как Person, и LiveData используется для этого бина, когда поле в бине изменяется, как оно уведомляется и уведомляет пользовательский интерфейс в двух направлениях. привязка, пользовательский интерфейс изменился (например, EditText), как он уведомляет данные?
Вот код:
public class Person {
private String firstName;
private String lastName;
}
<?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="mainViewModel"
type="com.desertboat.databinding.MainViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={mainViewModel.livePerson.firstName}" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={mainViewModel.livePerson.lastName}" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mainViewModel.livePerson.fullName}" />
</LinearLayout>
</layout>
Как показано в коде, когда я меняю имя в EditText, текст TextView не изменился, как реализовать привязку twoway, не изменяющую bean-компонент?