728x90
CheckBox, RadioButton 을 커스터마이징 할 수 있도록제공되는 View 이다.
CheckedTextView 주요 속성
checkMark : 체크 상태를 표시하는 아이콘을 설정한다.
checked : 체크 상태를 설정한다.
clickable : 클릭이 가능한지 설정한다. CheckedTextView는 CheckBox나 RadioButton이 가지고 있는 기능이 구현되어 있지 않다. 이 때문에 개발자가 기능을 모두 구현해줘야 하는데 clickable에 true를 설정해야 이벤트에 반응할 수 있고 이를 통해 리스너를 구현하여 기능을 구현해줘야 한다.
checkMark 방향
checkedTextView는 checkMark를 설정하면 우측에 표시된다.
checkMark 속성이 아닌 다음 속성을 이용하면 원하는 방향에 표시할 수 있다.
drawableTop : 상단
drawableBottom : 하단
drawableLeft : 좌측
drawableRigt : 우측
CheckedTextView 주요 프로퍼티
isChecked : 체크 상태
checkMark 주요 이벤트
click : 클릭했을 때 발생한다. checkedTextView는 이 이벤트를 반드시 설정해야 한다. checkedTextView는 checkbox나 radioButton이 가지고 있는 기능을 click 이벤트 발생 시 개발자가 모두 처리해줘야 한다.
package com.example.checkedtextview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.CheckedTextView
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
textView.text = ""
if (checkedTextView.isChecked == true) {
textView.append("첫 번째 체크 박스가 체크되어있습니다\n")
} else {
textView.append("첫 번째 체크 박스가 체크되어 있지 않습니다\n")
}
if (checkedTextView2.isChecked == true) {
textView.append("두 번째 체크 박스가 체크되어있습니다\n")
} else {
textView.append("두 번째 체크 박스가 체크되어 있지 않습니다\n")
}
if (checkedTextView3.isChecked == true) {
textView.append("세 번째 체크 박스가 체크되어있습니다\n")
} else {
textView.append("세 번째 체크 박스가 체크되어 있지 않습니다\n")
}
if (checkedTextView4.isChecked == true) {
textView.append("첫 번째 라디오 버튼이 체크되어있습니다")
} else if(checkedTextView5.isChecked == true){
textView.append("두 번째 라디오 버튼이 체크되어있습니다")
}else if(checkedTextView6.isChecked == true){
textView.append("세 번째 라디오 버튼이 체크되어있습니다")
}
}
button2.setOnClickListener {
checkedTextView.isChecked=false
checkedTextView2.isChecked=true
checkedTextView3.isChecked=false
checkedTextView4.isChecked=false
checkedTextView5.isChecked=false
checkedTextView6.isChecked=true
}
checkedTextView.setOnClickListener(listener1)
checkedTextView2.setOnClickListener(listener1)
checkedTextView3.setOnClickListener(listener1)
checkedTextView4.setOnClickListener(listener2)
checkedTextView5.setOnClickListener(listener2)
checkedTextView6.setOnClickListener(listener2)
}
val listener1 = object : View.OnClickListener{
override fun onClick(v: View?) {
// 형변환
val obj = v as CheckedTextView
if (obj.isChecked == true) {
obj.isChecked = false
} else {
obj.isChecked=true
}
}
}
val listener2 = object : View.OnClickListener{
override fun onClick(v: View?) {
checkedTextView4.isChecked=false
checkedTextView5.isChecked=false
checkedTextView6.isChecked=false
val obj = v as CheckedTextView
obj.isChecked=true
}
}
}

728x90
'안드로이드 > Widget' 카테고리의 다른 글
| 안드로이드 ProgressBar (0) | 2022.06.02 |
|---|---|
| 안드로이드 Chip (0) | 2022.05.31 |
| 안드로이드 Switch (0) | 2022.05.30 |
| 안드로이드 RadioButton (0) | 2022.05.30 |
| 안드로이드 CheckBox (0) | 2022.05.30 |