[ Android / Kotlin ] ViewBinding

Subeen·2024년 1월 3일
0

Android

목록 보기
29/71

ViewBinding

  • 뷰 바인딩(View Binding) 기능을 사용하면 뷰와 상호 작용 하는 코드를 쉽게 작성할 수 있다.
  • 모듈에서 사용 설정 된 뷰 바인딩은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성한다.
  • 바인딩 클래스의 인스턴스에는 상응하는 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함 된다.
  • 대부분의 경우 뷰 바인딩이 findViewById를 대체한다.

findViewById와의 차이점

NullSafe

  • 뷰 바인딩은 뷰의 Direct References 즉 직접 참조를 생성하므로 유효하지 않는 뷰 ID로 인해 null 포인터 예외(NPE)가 발생 할 위험이 없다.
  • 즉, 레이아웃에 아직 생성되지 않은 뷰의 참조를 얻어 (null 상태) 해당 뷰의 속성을 사용하려 할 때 발생하는 NPE를 방지한 다는 것이다.
  • 레이아웃의 일부 구성에만 뷰가 있는 경우 결합 클래스에서 참조를 포함하는 필드가 @Nullable로 표시된다.

Type Safety

  • 각 바인딩 클래스에 있는 필드의 유형이 XML 파일에서 참조하는 뷰와 일치한다.
  • 즉, 클래스 변환 예외가 발생할 위험이 없다.
  • 쉽게 말해 타입을 가지고 있기 때문에 imageView.text와 같이 타입이 다른 경우 발생하는 오류를 방지할 수 있다.

ViewBinding 사용법

build.gradle (:app)

android {
    buildFeatures {
        viewBinding = true
    }
}

MainActivity

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater) // ActivityMainBinding을 inflate
        val view = binding.root // view 생성
        setContentView(view)
        
        
        binding.myButton.setOnClickListener {
            binding.myTextView.text = "바인딩이 잘 되었네요 !"
        }

    }
profile
개발 공부 기록 🌱

0개의 댓글