Новая фича, доступная в суппорт библиотеке v7.
Подробное описание:
Data Binding Guide
Суть:
связывание данных и интерфейса
без необходимости
программно назначать значения параметров UI.
В чём профит? (мне этого достаточно)
* Упрощение. Для простых данных, типа обновления строкового значения в лэйауте, можно привязать нужную переменную к элементу TextView в xml и забыть о ней (*).
* Обновление UI из других потоков без необходимости использовать
Handler или runOnUIThread (
Communicating with the UI Thread).
(*) чтобы при изменении переменной в коде обновлялось значение в UI нужно добавить интерфейс Observable, для простых данных типа String, int и т.п. уже сделаны обёртки типа ObservableString.
Пример типичной ситуации:
Нужно обновить интерфейс данными, полученными по колбэку.
public void onDataChanged(String newValue) {
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = currentFragment.findViewById(R.id.textViewData); //либо этот TextView запоминаем при создании фрагмента, чтобы не искать
tv.setText(newValue);
}
});
}
А если использовать биндинг, то в xml добавляем
...
<data>
<variable name="data" type="com.myproj.Data"/>
</data>
....
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{data.strValue}"/>
и для колбэка
private ObservableString strValue = "";
public void onDataChanged(String newValue) {
strValue = newValue;
}
Это не статья, просто новость. Поэтому примеры оторваны от реальности.
Ну и привет майкрософту, у них модель биндинга изначально применяется в WindowsPhone.
Data binding for Windows Phone 8