Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도심공항
- SwiftUI #Skeleton #데이터갱신
- 대한항공
- 리브어보드
- 공기먹는다이버스
- cocoapod
- 크로아티아
- 그라나다
- 스페인광장
- 푸켓여행
- Gradle
- 스쿠버다이빙
- 강릉
- 스페인여행
- swiftUI
- Cocoapods #PrivateRepo #SpecRepo
- 연금저축펀드
- 아시아나
- Device 등록
- 스플리트
- 시밀란
- 러브스플리트
- 지팍스페인
- 괌 자유여행
- Swift #Concurrency #쓰레드
- 러브자그레브
- 라이브러리
- xcode
- Concurrency #Swift #Combine
- 세비야
Archives
- Today
- Total
JEP's Diary
Kotlin에서 DataBinding 사용하기 본문
Kotlin에서 DataBinding 사용하기
Kotlin에서 DataBinding을 사용하려면 아주 간단한 설정 후 사용 할 수 있다.
1. build.gradle 설정
앱 모듈의 build.gradle에 databinding 요소를 추가한다.
build.gradle
1 2 3 4 5 6 | android { .... dataBinding { enabled = true } } | cs |
2. layout 파일
DataBinding 레이아웃 파일은 layout의 루트 태그로 시작하고 그 뒤에 data요소와 view루트 요소가 나온다.
따라서 xml 파일의 루트를 layout 태그로 감싼다.
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context="android.pje.com.webparsersample.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout> </layout> | cs |
자바에서는 위의 1,2번 구성 후 DataBinding을 사용 할 수 있지만, Kotlin은 추가 설정이 필요하다.
3. DataBinding 사용
Activity에서 DataBinding을 사용해본다.
MainActivity.kt
1 2 3 4 5 6 7 8 9 | class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) } } | cs |
여기까지 한 후 빌드를 해보면 컴파일 에러가 난다.
'Unresolved reference: ActivityMainBinding'
ActivityMainBinding를 참조하지 못하는 것이다.
4. build.gradle 추가 설정
kapt 플러그인을 추가해주고 DataBinding를 의존성을 아래와 같이 추가한다. 이때 버전은 gradle 버전과 같게 해준다.
build.gradle
1 2 3 4 5 6 7 8 9 10 11 | apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' ... ... dependencies { // notice that the compiler version must be the same than our gradle version kapt "com.android.databinding:compiler:3.0.1" } | cs |
5. import ActivityMainBinding
다시 화면으로 와서 참조되지 않았던 ActivityMainBinding을 import가 가능한 것을 볼 수 있다.
import 한 후 컴파일 에러가 사라진다.
MainActivity.kt
1 | import android.pje.com.webparsersample.databinding.ActivityMainBinding | cs |
'Development > Kotlin' 카테고리의 다른 글
코틀린 헷갈리는 함수 정리. let, apply, run, with (0) | 2019.02.02 |
---|---|
3.자바와는 다른 코틀린의 특징 (0) | 2019.01.01 |
2. 자바와 비교해 보는 코틀린 2 (0) | 2018.11.11 |
2. 자바와 비교해 보는 코틀린 1 (0) | 2018.08.31 |
1.코틀린이란? (0) | 2018.08.25 |