iOS를 사랑하는 AOS 개발자

[Android/Kotlin] CheckBox 간단 사용법 본문

Android ( Kotlin )/개발

[Android/Kotlin] CheckBox 간단 사용법

아사안개 2022. 11. 26. 16:48
반응형
SMALL

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 

 

안녕하세요! 🙋🏻‍♀️

CheckBox Kotlin 버전으로 한번 작성해 보았습니다.

Java 버전은 하단으루

2021.12.21 - [Android ( JAVA )/개발] - [Android] CheckBox 간단 사용법

 

[Android] CheckBox 간단 사용법

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 2022.01.03 수정 ( 🤗 유튜브 오시면 나름 설명도 해줘요 🤗 ) 회원가입을 할때나 뭔가 확인을 요구할때 자주 쓰

devziner.tistory.com

 

View는 동일함으로 넘어갈게요 :)

 

class MainActivity : AppCompatActivity() {

    // 변수 선언
    lateinit var checks : Array<CheckBox?>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // xml의 checkBox id
        val integers = arrayOf(R.id.cb1, R.id.cb2, R.id.cb3, R.id.cb4)
        // checkbox 배열
        checks = arrayOfNulls(integers.size)

        checks.forEachIndexed { index, checkBox ->
            checks[index] = findViewById(integers[index])
            checks[index]?.setOnCheckedChangeListener(checkChangeListener)
        }
    }

    // checkBox 를 체크할때마다 변경되는 리스너
    var checkChangeListener =
        CompoundButton.OnCheckedChangeListener { buttonView, isChecked ->
            val arr: ArrayList<String> = ArrayList()

            checks.forEachIndexed { index, checkBox ->
                if (checks[index]!!.isChecked) {
                    arr.add(checks[index]!!.text.toString())
                }
            }

            if (arr.size != 0) {
                Toast.makeText(this@MainActivity, "$arr is checked.", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this@MainActivity, "NON checked.", Toast.LENGTH_SHORT).show()
            }
        }
}

 

Java 랑 비슷하지만 조금 수정했어요!

배열에 CheckBox의 Id 값들을 저장한 후 forEachIndexd 를 사용하여 연결 및 이벤트 리스너를 달아 주었습니다.

제가 Kotlin 을 많이 사용하지 않다보니 배열에서 index 값을 가져올 수 있는 방법은 일반 for문 사용을 하거나 forEachIndexed 를 사용하는 방법밖에 몰라서.... 일반 for 문은 java에서 지겹게 썼으니 forEachIndexed를 사용해 보았습니다.

그리고 또한 Kotlin 은 Nullsafety 을 지원하기에.... 이것 또한 아직 미숙하네요ㅠ..

얼른얼른 Kotlin 공부를 해야할것같네요 부족함이 전체공개~~ 

 

 

틀린부분이 있거나, 궁금하신게 있거나, 그냥 아무말이나 하고싶으면 댓글 남겨주세요 🥴

봐주셔서 감사합니다 🥰

반응형
LIST