마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

dataBinding에서 람다식 질문드려요

0 추천

안녕하세요

요즘 될수 있으면 데이터바인딩으로 모든걸 처리하려고 하는데

개발도중에 하나 문제가 생겼습니다.

데이터바인딩에서 클릭처리를 할때 레이아웃파일에서

android:onClick="@{() -> handler.onClick()}"

이런식으로 처리가 가능합니다.

 

근데 저 방식이 람다식이 포함된거라.. 처음에 몰랐는데..

찾아보니 안드로이드에서 람다식을 쓰려면 minSdkVersion이 24가 되야 된다고 글을 봤습니다.

 

근데 위에껄 신경 안쓰고 제가 모르고 적용을 해서 상용앱을 업데이트 해버렸습니다.

상용앱은 minSdk가 21입니다..

 

근데 데이터바인딩 최소사양에는 저런 말이 없어서..

혹시나 하는 마음에 api19짜리 폰으로 테스트 해봤는데 에러가 나지 않습니다..

에뮬레이터로 api23 으로 테스트 해봐도 에러가 안뜨더군요.. 

그래서 데이터바인딩으로 쓰는 람다식은 다른가? 하는 생각이 듭니다..

 

아니면 람다식은 24이상에서 써야된다는 제 검색이 잘못된거일수도 있구요..

 

테스트를 거쳐서 24미만에서도 데이터바인딩의 람다식은 사용가능하다는 결론을 냈는데..

혹시나 불안해서 여기에 질문 올려봅니다.. 혹시 이와 관련되서 아는 정보 있으시면 공유해주시면 감사하겠습니다.

익명사용자 님이 2018년 1월 5일 질문

1개의 답변

0 추천
 
채택된 답변
안드로이드 개발자 사이트 참고하면, 해당 표현부분은 Gradle 2.0 이상부터 지원된다고 나오는 것 같습니다. (리스너 바인딩이라고 하는 것 같습니다.)
https://developer.android.com/topic/libraries/data-binding/index.html

그리고, 알고 계신 24 이상은 데이터바인딩쪽이 아닌 JAVA 소스상에서 람다식을 쓸때 같은데,
문서를 봤을때는 Android Studio 나 JDK 버전과 연관있어 보입니다.
눈빛 (4,120 포인트) 님이 2018년 1월 5일 답변
그렇겠죠?

문제없을거 같긴 한데

리스너바인딩 읽어보면 설명에 람다식이라고 나와있어서
혹시나 하는 마음에 질문 올려봤습니다 ㅠㅠ.

답변, 감사합니다
...