데이터 바인딩
- xml의 뷰를 찾을 떄 편리한 방법으로 찾을수 있다.
- 설정방법
-
build.gradle (Module: app) 에서 옵션을 추가한다.
android { ... dataBinding { enabled = true } }
-
화면 xml에 상단에 <layout> 추가
<?xml version="1.0" encoding="utf-8"?> <layout> // 추가 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".login.Login2Activity">
... </androidx.constraintlayout.widget.ConstraintLayout></layout>
-
view를 초기화 할때 기존 코드보다 간결하게 사용할 수 있다,
-
기존 코드
class LoginActivity : AppCompatActivity() { // 버전을 보여주는 텍스트뷰 lateinit var versionTextVIew: TextView
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) versionTextVIew = findViewById(R.id.tvVersion) versionTextVIew.text = "(v${BuildConfig.VERSION_NAME})" }}
-
변경 코드
class LoginActivity : AppCompatActivity() { // 데이터바인딩 초기화 lateinit var binding: ActivityLogin2Binding
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_login) binding.tvVersion2.text = "(v${BuildConfig.VERSION_NAME})" }}
→ 기존 방식으로 view를 초기화하여 사용하면 모든 view들의 id를 가져오거나 id 대소문자 구분을 하여 다른 화면의 id를 호출하여 에러가 발생 할 수 있는데 데이터바인딩을 사용하면 해당 화면의 id들만 가져와 에러 발생률을 줄일수 있다.
-
-
'IT > Android' 카테고리의 다른 글
인텐트(Intent) - 다른 액티비티 호출 (0) | 2019.12.09 |
---|---|
안드로이드 앱 버전 가져오기 (0) | 2019.12.01 |
안드로이드 - 간단한 주사위 게임 앱 만들기 (2) | 2019.11.24 |
안드로이드 - 코틀린으로 프로젝트 생성 (0) | 2019.11.24 |
댓글