본문 바로가기
Android

[Android] Java 에서 Kotlin 으로 넘어가기 2. OnClick

by bryan.oh 2022. 2. 23.
반응형
Android 를 Java 로만 개발했었는데, Kotlin 으로 갈아타기 위해
이것저것 테스트 해보며 필요한것만 남기려고 포스팅합니다.
따라하기가 아닌, 한번 쓱~ 훑어보듯이 보면 좋을듯 합니다.

 

요약

android java 와 방법은 같음. 약간의 문법 차이가 있음 (당연한 소리를..)

 

1. button 에 setOnClickListener 사용하기

val testBtn: Button = findViewById(R.id.main_test_button)
testBtn.setOnClickListener(View.OnClickListener {
    // testBtn.setText("Hello~ Bryan!") // 가능하지만, 아래 줄 처럼 권장
    testBtn.text = "Hello~ Bryan!"
});

더 간단히,

testBtn.setOnClickListener {
    testBtn.text = "Hello~ Bryan!"
}

 

함수를 만들고 호출하게 하려면,

private fun myTestFunc(text: String?){
    main_test_textview.text = text
}

// ...

testBtn.setOnClickListener { myTestFunc("Hello~ Bryan!") }

처음엔 이런걸 다 외울 수 없으니, Alt + Enter 로 Cleanup code 를 적용하면 됩니다.

 

2. xml 에서 android:onClick 사용

xml 과 code 사이에 의존성이 생기지만, 위 1번처럼 객체에 setOnClickListener 를 모두 설정하지 않아도 되서.. 코드는 좀더 깔끔하지 않을까합니다.

이렇게 하고 MainActivity.kt 에서

fun onClickInMain(view: View) {
    when(view.id){
        R.id.main_test_button -> main_test_textview.text = "Hello~ Bryan!"
    }
}

이렇게 쓰면 됩니다.

switch, case 문이 when 입니다.

when (id) { 
    1 -> print("#1") 
    2 -> print("#2") 
    else -> print("default") 
}

 

3. View.OnClickListener 를 implements 하는 방법

setOnClickListener 도 해야되고, override 로 onClick 도 구현해야되고..

코드도 많아지고 그래서 개인적으로는 비추합니다.

 

 

저는 상황에 따라 1번이나 2번을 골라서 씁니다.

java 할때도 3번은 안썼... 귀찮...

728x90
반응형

댓글