PROGRAMMING/Android

[JETPACK_Android View] Kotlin Extensions

yuujoeng 2023. 3. 4. 23:38

1 findViewById / Kotlin Extensions

(1) findViewById

// activity_main.xml

	<Button
        android:id="@+id/btn1"
        android:text="btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btn2"
        android:text="btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btn3"
        android:text="btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
// build.gradle -> 코틀린 익스텐션 추가!

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-android-extensions'
}

 

- 기존에 사용했던 findViewById를 간결하게 표현할 수 있음

- 타 엑티비티와의 혼동이 발생할 수 있으므로 구글에서 지양하는 방법 + 성능 이슈 

- ViewBinding, DataBinding을 쓰자 !

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        /* findViewById

        val btn1 : Button = findViewById(R.id.btn1)
        val btn2 : Button = findViewById(R.id.btn2)
        val btn3 : Button = findViewById(R.id.btn3)

        btn1.text ="ABCD"
        btn2.text ="ABCD"
        btn2.text ="ABCD"

        */

        /* Kotlin Extensions */
        btn1.text = "ABCD"
        btn2.text = "ABCD"
        btn3.text = "ABCD"
    }
}