본문 바로가기

Dev/Android

[Android] View 뷰, View Binding 뷰 바인딩 (2)

반응형

 

[Android] View 뷰, View Binding 뷰 바인딩 (1)

1. View 객체의 계층 구조 View 클래스의 구조를 다이어그램으로 나타내면 다음과 같다. View  모든 View 클래스의 최상위 클래스 Activity는 View의 서브 클래스만 화면에 출력한다. ViewGroup View의 하위

choppadontbiteme.tistory.com

 


1. View Binding 뷰 바인딩

지난 글에서 View를 코드에서 사용하기 위해서는 findViewById() 함수를 이용한다고 했었는데,

객체마다 하나하나 함수를 이용하는 것은 꽤나 번거로운 일 일것이다.

 

하지만 뷰 바인딩을 활용하면 더 쉽게 XML 파일에 등록된 뷰 객체를 사용할 수 있다.

 

먼저 뷰 바인딩을 사용하려면 buildl.gradle 파일 > android 영역에 buildFeatures를 선언해야 한다.

위와 같이 지정하면 Layout XML 파일에 등록된 뷰 객체를 포함하는 클래스가 자동으로 만들어지기 때문에 findViewByID() 함수를 호출하지 않아도 사용가능하게 된다.

 

자동으로 만들어지는 클래스 이름은 XML 파일명을 따르게 된다.

예를들어 activity_main.xml 이라는 파일은 ActivityMainBinding으로 만들어진다.

즉, 첫 글자를 대문자로하고 언더바(_)는 빼고 뒷 단어도 대문자로 만든 후 Binding이 추가된다.

 

자동으로 만들어진 클래스의 inflate() 함수를 호출하면 바인딩 객체를 얻을 수 있으며, 이때 인자는 layoutInflater를 전달한다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // binding 
        val binding = ActivityMainBinding.inflate(layoutInflater)
        
        setContentView(binding.root)
        
        binding.btnSave.setOnClickListener {
        	binding.btnSave.text ="클릭"
        }
    }
}

 

2. 실습

  • 새로운  Empty Activity 프로젝트를 만든다.

  • 프로젝트 명을 지정한다.

  • build.gradle 파일의 android 영역에 buildFeatures를 추가 > 우측 상단 Sync Now 클릭

  • 테스트용 버튼을 하나 만든다.

클릭전 버튼의 text

  • AVD에서 확인하기

버튼 클릭 전/후

 


 

 

cpdm

 

choppadontbiteme.tistory.com

 

반응형