티스토리 뷰
반응형
데이터 바인딩 라이브러리
유연성과 호환성을 모두 제공하는 지원 라이브러리로, Android 2.1(API 레벨 7 이상)까지 Android 플랫폼의 모든 이전 버전에서 사용가능
빌드 환경
Android SDK Manager의 Support 저장소에서 라이브러리 다운로드
build.gradle 파일에 dataBinding 요소를 추가
android {
....
dataBinding {
enabled = true
}
}
데이터 바인딩 식 작성
<layout> 루트 태그로 시작, 그 뒤에 data요소와 view루트 요소가 나온다.
이때 view요소는 루트가 파일에 있는 요소이다.
sample
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout ...>
<TextView ...
android:text="@{user.lastName}"/>
</LinearLayout>
</layout>
data 내에 있는 user변수 - 이 레이아웃 내에서 사용할 수 있는 속성에 대한 설명
<variable name="user" type="com.example.User"/>
여기서 TextView의 텍스트는 사용자의 firstName 속성으로 설정레이아웃 내에 있는 식은 "@{}" 구문을 사용하여 특성 속성에 기록
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"/>
데이터 바인딩
Binding클래스는 레이아웃 파일의 이름을 기준으로 생성
파일 이름을 파스칼표기법으로 변환하고 그 뒤에 "Binding"을 접미사로 붙임
main_activity.xml --> MainActivityBinding
이 클래스는 레이아웃 속성에서 레이아웃의 View까지 모든 바인딩을 유지하고 바인딩 식에 대해 값을 할당하는 방법을 알고 있다. 바인딩을 가장 쉽게 생성하는 방법은 다음과 같이 확장하는 동안 바인딩을 생성하는 것이다.
1. 변수를 통해 바로 연결
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
}
2. 레이아웃을 얻어오는 방법
MainActivityBinding binding = MainActivityBinding.inflate(getLayoutInflater());
3. 어댑터를 사용하는 경우
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false);
//or
ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
* 참고
반응형
'Android > Java' 카테고리의 다른 글
[Android] onTouchEvent - 터치 이벤트 흐름 (0) | 2019.02.28 |
---|
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- Android
- ~=
- FLUTTER
- 안드로이드
- 연산자
- 아이폰앱개발
- 격파르타 장점
- dart
- 아이폰
- 격파르타 후기
- rotation
- sqld 자격증 합격
- rotate
- Xcode
- 함수
- 버전카타로그
- Kotlin
- Java
- Swift
- 음성재생
- gem update
- 격파르타 합격후기
- 코틀린
- 스위프트
- toml
- .toml
- NoAnimation
- 변수
- IOS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함