안드로이드 프로그래밍[Kotiln Code]/안드로이드 초기 강좌

[안드로이드] Radio 버튼 & Check 박스

훈츠 2020. 4. 7. 11:45
반응형

안녕하세요. 훈츠 입니다. 안드로이드 Radio 버튼 과 Check 박스버튼을 조작하는 기본적인 방법에 대해 포스팅 합니다. 


라디오 버튼 (Radio button) : RadioGroup.

그림과 같이 라디오 그룹안에 라디오 버튼을 넣는 방식으로 구성 가능합니다. 라디오 버튼 뿐만 아니라, 안드로이드에서 제공 해주는 View를 사용 할때 어떤 리스너를 상속받아야 하는지 아는것도 중요합니다. 

  • 라디오 그룹 아이디 할당 
    • 라디오 버튼 아이디 각각 할당
    • 익명객체에 RadioGroup 상속

Radio 버튼 그룹

// 아래와 같이 옵저버 패턴에 익명 함수를 통해서 익명 클래스를 구현하여 사용 할수있습니다. 
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 

 

[Kotlin] 코틀린 옵저버 패턴 리스너

안녕하세요. 훈츠 입니다. 오늘은 코틀린에서 광범위하게 사용되는 옵저버 패턴을 구현 하는 방법에 대해 설명 드리겠습니다. 옵저버 패턴을 구현하는 방법은 두가지 입니다. 한가지는 인터페이스를 상속하는 방법..

rain2002kr.tistory.com


체크 박스 (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)}
                }
            }
        })
 

출력 화면

https://youtu.be/60kZhqNkysc