[Android] viewBinding

Jeanine·2022년 7월 22일
0

android

목록 보기
10/10
post-thumbnail

1. 설정

  • build.gradle (Module)에 아래 코드 추가
android {
        ...
        viewBinding {
            enabled = true
        }
    }
    

2. 사용

  • MainActivity.kt에 아래 코드 추가
    • 해당하는 xml 파일에 따라서 이름이 바뀜 (e.g. activity_main.xml -> ActivityMainBinding)
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
        
        binding.apply {
            btnSubmit.setOnClickListener {
                val name = etName.text.toString()
                tvMessage.text = "Hello! $name"
                etName.setText("")
            }
        }
    }

3. findViewById에 비해 좋은점

① View를 직접 참조하기 때문에 유효하지 않은 View ID로 인해 null 포인터 예외가 발생할 위험이 없음

② 각 바인딩 클래스에 있는 필드의 유형이 XML 파일에서 참조하는 뷰와 일치하므로 클래스 변환 예외가 발생할 위험이 없음


[공식 문서 참고]

  1. 뷰 결합
profile
Grow up everyday

0개의 댓글