Как уведомить поле в бине, используя LiveData с двумя привязками? - PullRequest
0 голосов
/ 05 мая 2019

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-компонент?

...