🐰 activity_main.xml
코드
체크박스 세개 생성
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<CheckBox
android:id="@+id/checkApple"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="사과" />
<CheckBox
android:id="@+id/checkOrange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="오렌지" />
<CheckBox
android:id="@+id/checkBanana"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="바나나" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
🐰 MainActivity.kt
코드 ver.1
class MainActivity : AppCompatActivity() {
lateinit var checkApple : CheckBox
lateinit var checkOrange : CheckBox
lateinit var checkBanana : CheckBox
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
checkApple = findViewById(R.id.checkApple)
checkOrange = findViewById(R.id.checkOrange)
checkBanana = findViewById(R.id.checkBanana)
checkApple.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) { // 체크가 되었는지 확인
// 되었으면 토스트 메시지 전송
Toast.makeText(applicationContext, "사과", Toast.LENGTH_SHORT).show()
}
}
checkOrange.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
Toast.makeText(applicationContext, "오렌지", Toast.LENGTH_SHORT).show()
}
}
checkBanana.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
Toast.makeText(applicationContext, "바나나", Toast.LENGTH_SHORT).show()
}
}
}
}
🐰 MainActivity.kt
코드 ver.2 (listner 통합)
class MainActivity : AppCompatActivity() {
lateinit var checkApple : CheckBox
lateinit var checkOrange : CheckBox
lateinit var checkBanana : CheckBox
// 리스너를 생성해서 통합
// 변수 선언
var listner = CompoundButton.OnCheckedChangeListener { buttonView, isChecked ->
if (isChecked){
// 어떤 아이디인지 확인
when(buttonView.id){
R.id.checkApple -> Toast.makeText(applicationContext, "사과", Toast.LENGTH_SHORT).show()
R.id.checkOrange -> Toast.makeText(applicationContext, "오랜지", Toast.LENGTH_SHORT).show()
R.id.checkBanana -> Toast.makeText(applicationContext, "바나나", Toast.LENGTH_SHORT).show()
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
checkApple = findViewById(R.id.checkApple)
checkOrange = findViewById(R.id.checkOrange)
checkBanana = findViewById(R.id.checkBanana)
checkApple.setOnCheckedChangeListener (listner)
checkOrange.setOnCheckedChangeListener (listner)
checkBanana.setOnCheckedChangeListener (listner)
}
}
🐰 결과
다음과 같이 토스트메시지가 뜬다