728x90
반응형
package kr.co.eowork.Kotlin_test
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.Toast
class MainActivity : AppCompatActivity(), View.OnClickListener {
var btn1 : Button? = null
var btn2 : Button? = null
var btn3 : Button? = null
var btn4 : Button? = null
var btn5 : Button? = null
var btn6 : Button? = null
var btn7 : Button? = null
var btn8 : Button? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn1 = findViewById<Button>(R.id.button)
btn2 = findViewById<Button>(R.id.button2)
btn3 = findViewById<Button>(R.id.button3)
btn4 = findViewById<Button>(R.id.button4)
btn5 = findViewById<Button>(R.id.button5)
btn6 = findViewById<Button>(R.id.button6)
btn7 = findViewById<Button>(R.id.button7)
btn8 = findViewById<Button>(R.id.button8)
btn1!!.setOnClickListener(this)
btn2!!.setOnClickListener(this)
btn3!!.setOnClickListener(this)
btn4!!.setOnClickListener(this)
btn5!!.setOnClickListener(this)
btn6!!.setOnClickListener(this)
btn7!!.setOnClickListener(this)
btn8!!.setOnClickListener(this)
}
override fun onClick(v: View?) {
// java는 switch 문을 썻지만 코틀린은 when을 사용
when (v?.id) {
R.id.button -> {
Toast.makeText(this,"버튼 1",Toast.LENGTH_SHORT).show()
}
R.id.button2 -> {
//your code
}
R.id.button3 -> {
//your code
}
R.id.button4 -> {
//your code
}
R.id.button5 -> {
//your code
}
R.id.button6 -> {
//your code
}
R.id.button7 -> {
//your code
}
R.id.button8 -> {
//your code
}
else -> {
}
}
}
}
1. btn1 = findViewById<Button>(R.id.button) 처럼 뷰를 초기화 해준다.
2. View.OnClickListener 를 implement 해준다
3. btn1!!.setOnClickListener(this) 리스너를 등록해준다.
4. onClick 을 구현해준다
( when 을 사용하여 구분지어서 버튼마다 처리할 이벤트를 만든다.)
*
!! 연산자의 역할은 어떠한 값이든 Non-null 타입으로 변경하며,
Null이 값으로 들어오면 exception을 발생시킨다고 되어 있다.
즉, !! 연산자는 Null 값이 들어가서는 안되고, NPE가 필요한 경우에 사용할 수 있는 연산자라는 결론이 나온다.
출처: https://like-tomato.tistory.com/234 [토마토의 일상 얘기]
728x90
반응형
'Kotlin' 카테고리의 다른 글
Kotlin ) 스코프 함수 (0) | 2022.08.16 |
---|---|
코틀린 키해쉬 구하기 (0) | 2021.04.30 |
코틀린 fragment 내부에서 onActivityResult 받기 (0) | 2019.04.25 |
코틀린 프래그먼트, 뷰페이저 프래그먼트 갱신 (0) | 2019.04.25 |
코틀린 라디오그룹 RadioGroup (0) | 2019.04.19 |