Biblioteka powiązań danych Część pakietu Android Jetpack.

Biblioteka powiązań danych to biblioteka pomocnicza, która umożliwia wiązanie komponentów interfejsu w układach ze źródłami danych w aplikacji za pomocą formatu deklaratywnego, a nie programowego.

Układy są często definiowane w działaniach za pomocą kodu, który wywołuje metody platformy interfejsu. Na przykład podany niżej kod wywołuje funkcję findViewById(), aby znaleźć widżet TextView i powiązać go z właściwością userName zmiennej viewModel:

Kotlin

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

Java

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

Z przykładu poniżej dowiesz się, jak za pomocą biblioteki powiązań danych przypisać tekst do widżetu bezpośrednio w pliku układu. Dzięki temu nie będzie trzeba wywoływać kodu Java widocznego powyżej. Zwróć uwagę na składnię @{} w wyrażeniu przypisania:

<TextView
    android:text="@{viewmodel.userName}" />

Powiązywanie komponentów w pliku układu pozwala usuwać z działań wiele wywołań platformy interfejsu, co ułatwia ich obsługę. Może to też zwiększyć wydajność aplikacji i zapobiegać wyciekom pamięci oraz wyjątkom wartości null.

Korzystanie z biblioteki powiązań danych

Z tych stron dowiesz się, jak korzystać z biblioteki powiązań danych w aplikacjach na Androida.

Rozpocznij
Dowiedz się, jak przygotować środowisko programistyczne do pracy z biblioteką powiązań danych, w tym obsługę kodu wiązania danych w Android Studio.

Układy i wyrażenia wiązania

Język wyrażeń umożliwia pisanie wyrażeń łączących zmienne z widokami w układzie. Biblioteka powiązań danych automatycznie generuje klasy wymagane do powiązania widoków w układzie z obiektami danych. Biblioteka udostępnia funkcje takie jak importowanie, zmienne i elementy, których możesz używać w swoich układach.

Te funkcje biblioteki płynnie współistnieją z Twoimi istniejącymi układami. Na przykład zmienne powiązań, których można używać w wyrażeniach, są zdefiniowane w elemencie data, który jest elementem równorzędnym elementu głównego układu interfejsu. Oba elementy są umieszczone w tagu layout, jak w tym przykładzie:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="viewmodel"
            type="com.myapp.data.ViewModel" />
    </data>
    <ConstraintLayout... /> <!-- UI layout's root element -->
</layout>

Praca z obserwowalnymi obiektami danych
Biblioteka powiązań danych udostępnia klasy i metody ułatwiające obserwację danych pod kątem zmian. Nie musisz odświeżać interfejsu po zmianie źródła danych. Twoje zmienne lub ich właściwości mogą być obserwowalne. Biblioteka umożliwia obserwację obiektów, pól i kolekcji.
Wygenerowane klasy wiązania
Biblioteka powiązań danych generuje klasy powiązań używane do uzyskiwania dostępu do zmiennych i widoków układu. Na tej stronie dowiesz się, jak używać wygenerowanych klas wiązania i dostosowywać je.
Adaptery do oprawiania
W przypadku każdego wyrażenia układu dostępny jest adapter powiązania, który wykonuje wywołania platformy wymagane do ustawienia odpowiednich właściwości lub detektorów. Na przykład adapter wiązania może wywołać metodę setText(), aby ustawić właściwość text, lub metodę setOnClickListener(), aby dodać odbiornik do zdarzenia kliknięcia. Najpopularniejsze adaptery wiązań, takie jak adaptery właściwości android:text użyte w przykładach na tej stronie, są dostępne w pakiecie android.databinding.adapters. Listę najpopularniejszych adapterów wiązań znajdziesz na stronie o adapterach. Możesz też utworzyć adaptery niestandardowe, jak w tym przykładzie:

Kotlin

@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

Java

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}

Powiązanie widoków układu z komponentami architektury
Biblioteka pomocy Androida zawiera komponenty architektury, za pomocą których można projektować niezawodne, testowane i łatwe w utrzymaniu aplikacje. Możesz użyć komponentów architektury z biblioteką powiązań danych, aby jeszcze bardziej uprościć tworzenie interfejsu użytkownika.
Dwukierunkowe wiązanie danych
Biblioteka powiązań danych obsługuje dwukierunkowe wiązanie danych. Zapis używany w przypadku tego typu powiązania umożliwia odbieranie zmian w danych usługi i jednoczesne nasłuchiwanie jej aktualizacji przez użytkowników.

Dodatkowe materiały

Więcej informacji o wiązaniu danych znajdziesz w tych dodatkowych materiałach.

Próbki

Ćwiczenia z programowania

Posty na blogu