뷰 바인딩(View Binding)

조광희·2023년 8월 22일

뷰바인딩이란?

  • 모듈에서 사용 설정된 뷰 바인딩은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성한다.
  • 바인딩 클래스의 인스턴스에는 상응하는 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함됨.
  • findViewById를 대체

FindViewById와의 차이점

1) NullSafe

  • 뷰바인딩은 뷰를 직접 참조하여 생성함으로 NPE가 발생 할 위험이 없다.
  • 레이아웃에 생성되지않은 뷰를 참조할 수 없기때문에 NPE를 방지한다.

2) Type Safety

  • 각 바인딩 클래스에 있는 필드의 유형이 XML파일에 참조하는 뷰와 일치.
  • 클래스 변환 예외가 발생할 위험이 없다. (예시 : EditText클래스인데 TextView로 대입하는 경우)

코틀린 뷰바인딩 설정 방법

1) gradle설정

android{
	...
    
    // AndroidStudio 3.6 ~ 4.0
    viewBinding{
    	enabled = true
    }
    
    // AndroidStudio 4.0 ~
    buildFeatures{
    	viewBinding = true
    }
}

2) Activity에서 불러오기

import com.exaple.ActivityMainBinding

class MainActivity : AppCompatActivity(){
	private latinit var binding: ActivityMainBinding
    
    override fun onCrate(savedInstanceState: Bundle?){
    	super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater) // 고정값임으로 외우는게 좋다.
        val view = binding.root
        setContentView(view)
}

객체에 접근하는 방법

binding 뒤에 객체 안 ID에 접근하여 사용하면 된다.

예시 ) binding.bt1.text = "Hello World!"
profile
다시시작

0개의 댓글