반응형
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
반응형
'Android' 카테고리의 다른 글
[Android] Java 에서 Kotlin 으로 넘어가기 4. Fragment (0) | 2022.02.27 |
---|---|
[Android] Java 에서 Kotlin 으로 넘어가기 3. Intent (Splash, Activity 이동) (0) | 2022.02.23 |
[Android] Java 에서 Kotlin 으로 넘어가기 1. findViewById (0) | 2022.02.23 |
[Android] api29 이상. MediaStore DATE_MODIFIED 을 날짜 형식으로 가져오기 (0) | 2020.09.12 |
[Android] (androidx) Vertical SeekBar (세로 Seekbar) (0) | 2020.07.22 |
댓글