본문 바로가기
Android

[Kotlin] findViewById 대신에 View binding

by bryan.oh 2023. 7. 22.
반응형

View Binding

findViewById 대신에 XML 레이아웃 파일에 있는 ID를 직접 참조할 수 있습니다.

참고: 뷰 결합은 Android Studio 3.6 Canary 11 이상에서 사용할 수 있습니다.

1. build.gradle 에 viewBinding 설정

build.gradle (Module: YourApp.app) 의 파일을 열어서 android {   } 부분에 아래 코드를 추가합니다.

android {

    ...생략...
    
    viewBinding {
        enabled = true
    }
}

 

layout 파일의 내용이 다음과 같고, 이름은 activity_main.xml 이라고 했을 때

<LinearLayout ... >
    <TextView android:id="@+id/main_name_textview" />
    <Button android:id="@+id/main_confirm_button"
        android:background="@drawable/rounded_button" />
</LinearLayout>

layout 파일명에 따라서 결합 클래스 이름이 결정됩니다.

지금은 activity_main.xml 이라서 ActivityMainBinding 이 됩니다.

result_profile.xml 이라면 ResultProfileBinding 이 됩니다.

 

그리고 MainActivity.kt 에서 아래와 같이하면 됩니다.

package com.example.test01

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.test01.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
    }
}

 

그러면  layout xml 에서 id 를 이용해서 그대로 사용할 수 있습니다.

    binding.mainConfirmButton.setOnClickListener{
        binding.mainNameTextview.text = "Clicked!!"
    }

 

[Android] - [Kotlin] 코틀린 기본 문법 1 (변수, 자료형)

[Android] - [Kotlin] 코틀린 기본 문법 2 (배열의 모든 것)

[Android] - [Kotlin] 코틀린 기본 문법 3 (함수)

[Android] - [Kotlin] 코틀린 기본 문법 4 (조건문, 반복문)

[Android] - [Kotlin] 코틀린 기본 문법 5 (배열 응용)

[Android] - [Kotlin] findViewById 대신에 View binding

728x90
반응형

댓글