1. 뷰 바인딩 (View Binding)
뷰 바인딩(View Binding)은 안드로이드 스튜디오에서 제공하는 기능으로, XML 레이아웃 파일에 대해 자동으로 생성된 클래스를 통해 각 뷰에 쉽게 접근하고 조작할 수 있게 해준다. 이를 통해 findViewById 메서드를 사용하지 않고도 레이아웃의 뷰에 접근할 수 있다.
2. 뷰 바인딩의 장점
1) 간결한 코드: 뷰를 참조하기 위해 반복적으로 findViewById를 호출하지 않아도 되어 코드가 간결하다.
2) 자동 생성 클래스: 각 레이아웃 파일에 대해 자동으로 생성된 클래스를 통해 뷰에 쉽게 접근할 수 있다.
3. 뷰 바인딩 설정 및 사용 방법
1) 프로젝트에 뷰 바인딩 설정
build.gradle.kts(Module :app) 파일에 buildFeatures { viewBinding = true }를 적고 sync now를 반드시 해줘야 한다.
📑 GradleScripts > build.gradle.kts(Module :app)
android {
...
// 뷰 바인딩 허용
buildFeatures {
viewBinding = true
}
}
2) XML 레이아웃 파일
예시를 위해 textView와 button을 추가해주었다.
📑 app > res > layout > activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
3) MainActivity에서 뷰 바인딩 적용
① binding 객체 선언
② binding 객체 할당
③ id를 통하여 뷰에 접근하여 조작
📑 app > kotlin+java > com.example.exbinding > MainActivity.class
package com.example.exbinding
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.jaehyodev.exbinding.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
// binding 객체 선언
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// binding 객체 할당
binding = ActivityMainBinding.inflate(layoutInflater);
// 루트 뷰를 설정하여 화면에 표시
setContentView(binding.root);
// textView라는 id를 가진 뷰의 텍스트를 변경
binding.textView.setText("Hello, View Binding!");
// button이라는 id를 가진 뷰를 클릭했을 때
binding.button.setOnClickListener {
// textView라는 id를 가진 뷰의 텍스트를 변경
binding.textView.setText("Button Clicked!")
};
}
}
4. 결론
뷰 바인딩은 안드로이드 개발에서 findViewById를 사용하지 않고도 뷰에 안전하고 간편하게 접근할 수 있게 해주는 유용한 기능이다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있다.
'IDE > AndroidStudio' 카테고리의 다른 글
안드로이드 이벤트 (Android Event) (0) | 2024.07.12 |
---|
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!