Data Binding Library Parte di Android Jetpack.
La libreria di associazione dei dati è una libreria di supporto che consente di associare i componenti dell'interfaccia utente nei layout alle origini dati nella tua app utilizzando un formato dichiarativo anziché a livello di programmazione.
I layout sono spesso definiti nelle attività con codice che chiama i metodi del framework dell'interfaccia utente. Ad esempio, il codice che segue 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 dati per assegnare testo
al widget direttamente nel file di layout. Ciò elimina la necessità di chiamare uno qualsiasi dei codici Java mostrati sopra. Nota l'utilizzo della sintassi @{}
nell'espressione del compito:
<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. Questo può anche migliorare le prestazioni dell'app e aiutare a evitare perdite di memoria e eccezioni del puntatore nullo.
Utilizzo della libreria di associazione dati
Utilizza le seguenti pagine per scoprire come utilizzare la libreria di associazioni di dati nelle tue app per Android.
- Inizia
- Scopri come preparare il tuo ambiente di sviluppo con la libreria di associazioni di dati, incluso il supporto del codice di associazione dati in Android Studio.
Layout ed espressioni di associazione
Il linguaggio delle espressioni consente di scrivere espressioni che collegano le variabili alle viste nel layout. La libreria di associazione dati genera automaticamente le classi necessarie per associare le viste nel layout ai tuoi oggetti dati. La libreria fornisce funzionalità come importazioni, variabili e che puoi utilizzare nei tuoi layout.
Queste funzionalità della libreria coesistono perfettamente con i layout esistenti.
Ad esempio, le variabili di associazione che possono essere utilizzate nelle espressioni sono definite
all'interno di un elemento data
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>
- Lavora con oggetti dati osservabili
- La libreria di associazione dei dati fornisce classi e metodi per osservare facilmente i dati per le modifiche. Non devi preoccuparti di aggiornare l'UI quando l'origine dati sottostante cambia. Puoi rendere osservabili le variabili o le relative proprietà. La libreria ti consente di rendere osservabili oggetti, campi o raccolte.
- Classi di associazione generate
- La libreria di associazione dati genera classi di associazione che vengono utilizzate per accedere alle variabili e alle viste del layout. Questa pagina mostra come utilizzare e personalizzare le classi di associazione generate.
- Adattatori di rilegatura
- Per ogni espressione di layout è disponibile un adattatore di associazione che effettua le chiamate del framework necessarie per impostare le proprietà o gli ascoltatori corrispondenti. Ad
esempio, l'adattatore di associazione può occuparsi di chiamare il metodo
setText()
per impostare la proprietà di testo o chiamare il metodosetOnClickListener()
per aggiungere un ascoltatore all'evento di clic. Gli adattatori di associazione più comuni, ad esempio gli adattatori per la proprietàandroid:text
utilizzati negli esempi di questa pagina, sono disponibili per il pacchettoandroid.databinding.adapters
. Per un elenco degli adattatori di associazione comuni, consulta gli 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; }
- Associare le viste del layout ai componenti dell'architettura
- La libreria di assistenza Android include i componenti dell'architettura, che puoi utilizzare per progettare app solide, verificabili e gestibili. Puoi utilizzare i componenti dell'architettura con la libreria di associazione di dati per semplificare ulteriormente lo sviluppo dell'interfaccia utente.
- Associazione bidirezionale dei dati
- La libreria di associazione dati supporta l'associazione di dati bidirezionale. La notazione utilizzata per questo tipo di associazione supporta la capacità di ricevere le modifiche ai dati in una proprietà e ascoltare contemporaneamente gli aggiornamenti degli utenti a quella proprietà.
Risorse aggiuntive
Per scoprire di più sull'associazione di dati, consulta le seguenti risorse aggiuntive.
Samples
codelab
Post del blog
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript non è attivo
- Adattatori di associazione {:#binding-adattamentoers}
- Layout ed espressioni di associazione
- Classi di associazione generate {: #binding-classes}