본문 바로가기
Android/Android Studio

[안드로이드/Kotlin] ViewBinding 사용

by YOONAYEON 2022. 5. 12.
ViewBinding

 

- xml파일과 class파일을 연결해주는 기능

- xml상에 있는 파일들을 코틀린 코드에서 활용하기 위한 바인딩 작업 (메모리 상에 업로드)

- NullPointException해결

- xml파일과 class파일을 연결하면서 코드가독성↑

 

 

1. Gradle 선언 (모듈 단위 gradle파일)

 

android{
	viewBinding{
    		enabled true
    	}
    	...
}

 

 

2. viewBinding 전역변수로 선언

 

lateinit var binding: ActivityMainBinding  // ↔ activity_main.xml

 

 

3. onCreate()함수에서 바인딩 초기화 해준다

 

override fun onCreate(savedInstance: Bundle?){
    supser.onCreate(savedInstance)
    
    //inflate : xml에 표기된 레이아웃들을 메모리에 객체화 시키는 함수
    binding = ActivityMainBinding.inflate(layoutInflater)	//바인딩 초기화
    
    //root부분 ctrl클릭시, xml파일의 최상단 뷰를 가리키는 것을 알 수 있음
    setContentView(binding.root)	//이제 xml뷰를 마음대로 쓸 수 있음
}

 

전체코드 : 

class MainActivity: AppCompatActivity() {

	lateinit var binding: ActivityMainBinding	// <-> activity_main.xml
    
    	override fun onCreate(savedInstanceState: Bundle?) {
    		super.onCreate(savedInstanceState)
        
        	//클래스를 인스턴스화 -> 메모리에 올리기
        	binding = ActivityMainBinding.inflate(layoutInflater) //xml 뷰를 메모리에 객체화 시키는
        	setContentView(binding.root)	//루트 전체: 레이아웃 하위 뷰 모두 담기
    	}
}

 

 

4. binding.뷰id.~ 의 구조로 사용 가능

 

binding.btn_1.setOnClickListener{
	//...
}