본문 바로가기
Programming

Kotlin kotlin-android-extentions가 제거된 안드로이드 4.1 XML 객체 선택하는 방법

by 하하호호 2022. 3. 9.
반응형

 

 

안드로이드 스튜디오 4.1 버전 부터는

kotlin-android-extentions를 사용하지 못한다. 

build.gradle를 살펴보면 2가지 밖에 남지 않았다.

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

 

build.gradle에 kotlin-android-extentions를 추가해주고,

Activity 내에서 바로 XML id 값에 접속할 수 있었는데,

안드로이드 공식 문서에서 삭제되었다.

 

 

 

 

XML을 참조하는 방법은 결국 findViewById() 메소드르 사용해야 한다.

package com.example.bmicalc

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button

class KotlinActivity : AppCompatActivity() {

	// XML에서 "homeButton"로 id를 정의한 Button 선택
    private val homeButton by lazy { findViewById<Button>(R.id.homeButton) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin)

		// homeButton 클릭 이벤트 리스너 추가
        homeButton.setOnClickListener {
            startActivity(Intent(this@KotlinActivity, MainActivity::class.java))
        }
    }
}

 

kotlin-android-extentions 가 사라진 이유

kotlin-android-extentions는 내부 캐싱과 반복적인

viewBinding() 함수를 제거해주는 편리한 기능인데,

이게 사라진 이유는 뭘까?

 

이 편리한 플러그인을 제공하지 않는 이유는,

레이아웃이 몇개 없는 상황에서는 편리하게 사용할 수

있지만, 레이아웃이 여러개가 겹쳐지고, id가 

많아지는 상황에서 실수할 여지가 있다는 것이다.

 

 

 

반응형

댓글