Data Binding Library Componente di Android Jetpack.

La libreria di associazione dei dati è una libreria di supporto che ti consente di associare i componenti UI nei tuoi layout alle origini dati nella tua app utilizzando un formato dichiarativo anziché in modo programmatico.

I layout sono spesso definiti in attività con codice che chiama i metodi dei framework dell'interfaccia utente. Ad esempio, il codice seguente chiama findViewById() per trovare un widget TextView e associarlo alla proprietà userName della variabile viewModel:

Kotlin

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

Java

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

L'esempio seguente mostra come utilizzare la libreria di associazione dei dati per assegnare testo al widget direttamente nel file di layout. Questo elimina la necessità di chiamare il codice Java mostrato sopra. Tieni presente l'utilizzo della sintassi @{} nell'espressione di assegnazione:

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

L'associazione dei componenti nel file di layout ti consente di rimuovere molte chiamate al framework dell'interfaccia utente nelle tue attività, rendendole più semplici e facili da gestire. Ciò può anche migliorare le prestazioni dell'app e contribuire a evitare perdite di memoria ed eccezioni di tipo puntatore nullo.

Utilizzo della libreria di associazione dati

Utilizza le pagine seguenti per scoprire come utilizzare la libreria Data Binding nelle tue app Android.

Inizia
Scopri come preparare l'ambiente di sviluppo per l'utilizzo con la libreria di associazione dei dati, che include il supporto per il codice di associazione dei dati in Android Studio.

Layout ed espressioni di associazione

Il linguaggio di espressione consente di scrivere espressioni che collegano le variabili alle viste nel layout. La libreria di associazione dei dati genera automaticamente le classi necessarie per associare le viste nel layout agli oggetti di dati. La libreria fornisce e include funzionalità come importazioni e variabili che puoi utilizzare nei layout.

Queste funzionalità della libreria coesistono perfettamente con i tuoi layout esistenti. Ad esempio, le variabili di associazione che possono essere utilizzate nelle espressioni sono definite all'interno di un elemento data che è un elemento di pari livello dell'elemento principale del layout dell'interfaccia utente. Entrambi gli elementi sono aggregati in un tag layout, come mostrato nell'esempio seguente:

<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>

Utilizzare gli oggetti di dati osservabili
La libreria Data Binding fornisce classi e metodi per osservare facilmente i dati in caso di modifiche. Non devi preoccuparti di aggiornare l'interfaccia utente quando cambia l'origine dati sottostante. Puoi rendere osservabili le tue variabili o le loro proprietà. La libreria consente di rendere osservabili oggetti, campi o raccolte.
Classi di associazione generate
La libreria Data Binding genera classi di associazione utilizzate per accedere alle variabili e alle viste del layout. Questa pagina mostra come utilizzare e personalizzare le classi di associazione generate.
Adattatori per associazione
Per ogni espressione di layout, è disponibile un adattatore di associazione che esegue le chiamate framework necessarie per impostare le proprietà o i listener corrispondenti. Ad esempio, l'adattatore di associazione può occuparsi di chiamare il metodo setText() per impostare la proprietà di testo o chiamare il metodo setOnClickListener() per aggiungere un ascoltatore all'evento clic. Nel pacchetto android.databinding.adapters sono disponibili gli adattatori di associazione più comuni, come gli adattatori per la proprietà android:text utilizzati negli esempi di questa pagina. Per un elenco degli adattatori di associazione comuni, consulta la pagina relativa agli adattatori. Puoi anche creare adattatori personalizzati, come mostrato nell'esempio seguente:

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;
}

Associazione delle viste del layout ai componenti dell'architettura
Android Support Library include i componenti dell'architettura, che puoi utilizzare per progettare app solide, testabili e gestibili. Puoi utilizzare i componenti dell'architettura con la libreria Data Binding per semplificare ulteriormente lo sviluppo dell'interfaccia utente.
Associazione di dati bidirezionale
La libreria Data Binding supporta l'associazione di dati bidirezionale. La notazione utilizzata per questo tipo di associazione supporta la possibilità di ricevere le modifiche dei dati a una proprietà e di ascoltare contemporaneamente gli aggiornamenti degli utenti relativi alla proprietà.

Risorse aggiuntive

Per scoprire di più sull'associazione di dati, consulta le seguenti risorse aggiuntive.

Samples

Codelab

Post del blog