tutorial studio español ejemplo databinding data android data-binding view android-context

studio - Android DataBinding donde obtener contexto?



data binding español (3)

Se genera una variable especial denominada contexto para usar en expresiones de enlace según sea necesario. El valor para el contexto es el contexto desde getContext () de la vista raíz. La variable de contexto será anulada por una declaración de variable explícita con ese nombre.

En otras palabras, cada vez que necesite pasar el contexto, use "contexto" como en @{Object.method(context)} .

Tengo TextView para mostrar el tiempo. Quiero usar el complemento DataBinding de Android. Para el tiempo de formato estoy usando el método DateUtils.formatDateTime (context, int, int) que toma la instancia de Context ¿Es posible obtener el elemento de inclusión de contexto? ¿O tengo que usar la vieja escuela?

Gracias


Pensé que debía responder en lugar de poner un comentario. Tendrás más opciones cuando se lance rc2. En rc1, puede pasar el contexto en una variable al Enlace, luego pasarlo como un parámetro al método. Alternativamente, puede crear un atributo personalizado para el enlace de datos:

@BindingAdapter({"timeMillis", "dateFlags"}) public static void setDateText(TextView view, int timeMillis, int dateFlags) { view.setText(DateUtils.formatDateTime(view.getContext(), timeMillis, dateFlags)); }

Y luego utilízalo en tu TextView:

<TextView ... app:timeMillis="@{timeVar}" app:dateFlags="@{dateFlags}"/>


También puede hacer algo como esto en su vista usando el context vista actual como parámetro.

... android:text="@{yourModelHere.yourModelMethodHere(context)}" ...