반응형
안녕하세요. 훈츠 입니다. 안드로이드 Radio 버튼 과 Check 박스버튼을 조작하는 기본적인 방법에 대해 포스팅 합니다.
라디오 버튼 (Radio button) : RadioGroup.
그림과 같이 라디오 그룹안에 라디오 버튼을 넣는 방식으로 구성 가능합니다. 라디오 버튼 뿐만 아니라, 안드로이드에서 제공 해주는 View를 사용 할때 어떤 리스너를 상속받아야 하는지 아는것도 중요합니다.
- 라디오 그룹 아이디 할당
- 라디오 버튼 아이디 각각 할당
- 익명객체에 RadioGroup 상속
// 아래와 같이 옵저버 패턴에 익명 함수를 통해서 익명 클래스를 구현하여 사용 할수있습니다.
colorOptionGroup.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener{
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
when(checkedId){
R.id.redOption -> {txtPreView.setTextColor(Color.RED)}
R.id.blueOption -> {txtPreView.setTextColor(Color.BLUE)}
R.id.yellowOption -> {txtPreView.setTextColor(Color.YELLOW)}
}
}
})
옵저버 패턴
https://rain2002kr.tistory.com/80?category=361958
체크 박스 (CheckBox) : CompoundButton.
체크 박스는 CompoundButton 을 상속 하면 되고, text에 setTypeface 를 통해서 색상과 진하기 혹은 이탤릭에 대한 옵션을 설정 할수 있습니다.
- textView.setTypeface(null, option)
- textView.setTextColor(Color.RED)
// 진하게, 이탤릭 옵션
override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
var option = 0
if(checkBox.isChecked) { option += BOLD }
if(checkBox2.isChecked) {option += ITALIC }
txtPreView.setTypeface(null, option)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 체크 박스에 리스너 연결
checkBox.setOnCheckedChangeListener(this)
checkBox2.setOnCheckedChangeListener(this)
//라디오 그룹에, 색상 바꾸기
colorOptionGroup.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener{
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
when(checkedId){
R.id.redOption -> {txtPreView.setTextColor(Color.RED)}
R.id.blueOption -> {txtPreView.setTextColor(Color.BLUE)}
R.id.yellowOption -> {txtPreView.setTextColor(Color.YELLOW)}
}
}
})
출력 화면
'안드로이드 프로그래밍[Kotiln Code] > 안드로이드 초기 강좌' 카테고리의 다른 글
[안드로이드] 스피너2 (콤보박스) with 모델클래스 (0) | 2020.04.09 |
---|---|
[안드로이드] 스피너 (콤보박스) (0) | 2020.04.09 |
[안드로이드] Image View 이미지 뷰 (0) | 2020.04.06 |
[안드로이드] View 조작하기 (0) | 2020.04.04 |
[안드로이드] 레이아웃 (0) | 2020.04.03 |