2016-08-11 3 views
0

Поскольку я видел ответы на вопрос (Error:Data Binding does not support Jack builds yet), привязка данных еще не поддерживает JDK8 (так как для JACK включен JACK).Связывание данных с JDK 8

Однако я видел использование привязки данных у официального лица, используя выражение lambdas. (https://developer.android.com/topic/libraries/data-binding/index.html#listener_bindings)

Можно ли использовать привязку данных к JDK 8, так как я начал тестировать приложение с привязкой данных с API 24 (требуется JDK 8) ???

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> 
     <Button android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:onClick="@{() -> presenter.onSaveClick(task)}" /> 
    </LinearLayout> 
+0

Для чего вам нужны привязки данных? Разве вы не можете просто 'android: onClick =" onSaveClick "? –

+0

Я начал разрабатывать приложение с API 23, используя привязку данных с этим синтаксисом. Теперь я хочу перенести текущий код с помощью выражения lambdas (много Rx в моем приложении), но он не работает (вы знаете, привязка данных еще не поддерживается JACK) –

+0

Не совсем ясно, что лямбды в привязке данных требуется компилятор Jack. Он говорит только, что требуется Gradle 1.5.0-alpha1 или выше –

ответ

1

Да, еще нет поддержки Jack Build, но вы можете использовать лямбда-выражения в файлах XMl.

В обновлении от Yigit https://code.google.com/p/android/issues/detail?id=210615#c11

Эти проблемы не влияют на все приложения и не являются специфическими для данных связывания (любой аннотацию процессор может поразить их). Мы выпустим экспериментальную интеграцию в версии 2.3, а также будем работать над устранением этих проблем .

Тем не менее, если вы хотите использовать лямбда с привязкой данных, вы можете использовать его. Но если вы хотите другие функции в java, вы не можете.

Смежные вопросы