View Binding

KEH·2021년 7월 14일
0
post-thumbnail

뷰 바인딩이란 kotlin extention에서 findViewById를 사용하지 않고 id 명으로 뷰를 접근했던 기능과 동일한 기능이다.

현재 kotlin extention은 2021년에 지원 중단이 될 예정이라 뷰 바인딩을 사용하는 것이 좋을 것 같다.

뷰 바인딩 사용을 위해 gradle 활성화 시키기

build.gradle(module) 파일에 접근해 아래와 같이 코드를 작성하여 뷰 바인딩 사용을 활성화 한다.

뷰 바인딩 사용해보기

activity_login.xml 파일에서 passwordEditText라는 id의 텍스트를 뷰 바인딩을 사용해 가져와보도록 하겠다.
아래와 같이 activity_login.xml 파일에 passwordEditText라는 id를 가진 EditText를 선언하였다.

LoginActivity.kt 파일로 이동해 뷰 바인딩 코드를 작성한다.

class LoginActivity : AppCompatActivity() {
    private lateinit var binding: ActivityLoginBinding
    var auth: FirebaseAuth? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //자동 생성된 뷰 바인딩 클래스에서의 inflate라는 메서드를 활용해
        //액티비티에서 사용할 바인딩 클래스의 인스턴스 생성
        binding = ActivityLoginBinding.inflate(layoutInflater)
        //레이아웃 내부의 최상위 위치 뷰의 인스턴스를 활용해 생성된 뷰를 액티비티에 표시.
        setContentView(binding.root)

        var password = binding.passwordEditText.text.toString()
    }
}
  1. activity_login.xml의 바인딩 클래스인 ActivityLoginBinding 클래스가 생성된다.
    여기서 바인딩 클래스의 이름이 지어지는 기준은 다음과 같다.
    1) 파스칼 케이스(첫 글자 대문자) + 카멜 케이스
    2) 파일 이름 끝에 Binding이라는 명칭을 붙임.
    ex) activity_login.xml -> ActivityLoginBinding
  2. inflate() 메서드를 사용해 액티비티(LoginActivity)에서 사용할 바인딩 클래스의 인스턴스를 생성한다.
  3. setContentView()에 레이아웃 내부의 최상위 위치 뷰를 전달해 액티비티에 표시한다.
  4. binding.id명으로 activity_login.xml 파일 내의 뷰 id 접근이 가능해진다.
    이 때 id명도 파인딩 클래스의 이름이 지어질 때 와 마찬가지로 파스칼 케이스(첫 글자 대문자) + 카멜 케이스로 작성한다.

[출처]홍드로이드-뷰바인딩
[출처]charlezz-View Binding 살펴보기

profile
개발을 즐기고 잘하고 싶은 안드로이드 개발자입니다 :P

0개의 댓글