반응형
1. Data Class 란
1) 데이터 보관하기 위한 클래스.
2) Kotlin(코틀린)에서는 이를 데이터 클래스(Data Class)라고 부른다.
3) java 처럼 getter/setter을 정의해서 쓸 필요가 없고, 자동으로 인식하도록 되어 있다.
(get 또는 set이라고 입력하면, 자동으로 변수가 인식된다.)
4) toString(), hashCode(), equals(), copy()를 override하면, 그 함수는 직접 구현된 코드를 사용 할 수 있다.
2. DataBinding, Data Class 함께 쓰면 좋은점
1) Data Class 는 DataBinding을 참조하므로, 이로인한 성능 향상이 될 수 있다.
2) 변수 하나 수정으로, UI에 적용할 수 있다.
3. DataBinding, Data Class 함께 쓰면 단점
1) 나중에 복잡한 코드에서 관리를 잘하지 않으면 서로 참조하여, 엉키는 현상이 발생할 수 있을것 같다.
4. 사용법
1) Data Class 만들기
package kr.co.jinisoftware.aboutme
data class MyName(var name: String = "", var nickName: String = "")
2) xml 데이터 맵핑 및 데이터 클래스 명시
<layout>
...
<!-- Data Class 명시 -->
<data>
<variable
name="myName"
type="kr.co.jinisoftware.aboutme.MyName" />
</data>
<!--
Data Class 바인딩
@={클래스명.변수명}
-->
<TextView
android:id="@+id/name_text"
style="@style/NamesStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={myName.name}"
android:textAlignment="center" />
...
<layout>
4) Data Class 선언 후, 데이터 수정 해보기
private val myName: MyName = MyName("jini")
...
// xml에 명시된 myName(Data Class)의 name 변수 값을 수정하면, xml에 맵푕된 @={myName.name} 으로 데이터가 변경된다.
myName?.name = nicknameEdit.text.toString()
// 뷰 갱신
invalidateAll()
...
반응형
'Programming > Android' 카테고리의 다른 글
[Kotlin/Android] Navigation (Pop behavior, navigateUp vs Back, ActionBar) (0) | 2020.09.01 |
---|---|
[Kotlin/Android] Navigation (0) | 2020.09.01 |
[Kotlin/Android] 벡터 드로어블(Vector Drawables) API 7 이상 (0) | 2020.08.28 |
[Kotlin/Android] DataBinding example (0) | 2020.08.27 |
Android DownloadManager state 400 (0) | 2019.07.25 |