2016-08-11 7 views
0

Wie ich die Antworten von der Frage sah (Error:Data Binding does not support Jack builds yet), unterstützt die Datenbindung noch nicht das JDK8 (da es JACK in AS aktiviert benötigt).Datenbindung mit JDK 8

Allerdings sah ich die Verwendung der Datenbindung vom Beamten mit dem Lambda-Ausdruck. (https://developer.android.com/topic/libraries/data-binding/index.html#listener_bindings)

Gibt es eine Möglichkeit, Datenbindung mit JDK 8 zu verwenden, seit ich begann, die App mit Datenbindung mit API 24 zu testen (benötigt 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

Warum benötigen Sie Datenbindung dafür? Kannst du nicht einfach 'android: onClick =" onSaveClick "'? –

+0

Ich fing an, die Anwendung mit API 23 zu entwickeln, die die Datenbindung mit dieser Syntax verwendet. Jetzt möchte ich den aktuellen Code mit lambdas Ausdruck migrieren (viele Rx in meiner App), aber es funktioniert nicht (du weißt, Datenbindung wird JACK noch nicht unterstützt) –

+0

Es ist nicht ganz klar, dass die Lambdas in der Datenbindung benötige den Jack Compiler. Es besagt nur, dass Gradle 1.5.0-alpha1 oder höher erforderlich ist –

Antwort

1

Ja, es gibt noch keine Unterstützung für Jack Build, aber Sie können Lambda-Ausdrücke in XMl-Dateien verwenden.

Als Update von yigit https://code.google.com/p/android/issues/detail?id=210615#c11

Diese Probleme betreffen nicht alle Anwendungen und sind Daten Bindung nicht spezifisch (jede Anmerkung Prozessor kann sie treffen). Wir werden eine experimentelle Integration in 2.3 veröffentlichen und auch daran arbeiten, diese Probleme zu beheben.

Noch, wenn Sie Lambda mit Datenbindung verwenden möchten, können Sie es verwenden. Aber wenn Sie andere Funktionen in Java möchten, können Sie nicht.

Verwandte Themen