2016-08-11 2 views
0

질문 (Error:Data Binding does not support Jack builds yet)의 응답을 보았을 때 데이터 바인딩은 JDK8을 아직 지원하지 않습니다 (AS에서 JACK을 활성화해야하므로).JDK 8을 사용한 데이터 바인딩

그러나 람다 (lambdas) 표현식을 사용하여 공식으로부터 데이터 바인딩 사용을 보았습니다. https://developer.android.com/topic/libraries/data-binding/index.html#listener_bindingshttps://developer.android.com/topic/libraries/data-binding/index.html#listener_bindings

API 24 (JDK 8 필요)로 데이터 바인딩을 사용하여 응용 프로그램을 테스트하기 시작한 이후로 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

데이터 바인딩의 lambdas Jack 컴파일러가 필요합니다. Gradle 1.5.0-alpha1 이상이 필요하다고 말합니다. –

답변

1

예 아직 잭 빌드를 지원하지 않지만 XMl 파일에서 람다 식을 사용할 수 있습니다. yigit https://code.google.com/p/android/issues/detail?id=210615#c11

에서 업데이트로

은 이러한 문제는 모든 응용 프로그램에 영향을주지하고 (모든 주석 프로세서를 칠 수) 데이터 바인딩 특정하지 않습니다. 2.3에서는 실험용 통합 을 출시하고 문제를 해결하기 위해 노력할 것입니다.

데이터 바인딩과 함께 람다를 사용하려는 경우에도 사용할 수 있습니다. 그러나 자바의 다른 기능을 원한다면 그렇게 할 수 없습니다.