Nuke Olaf - Log Store
[Android] 안드로이드 - 이용약관 동의 체크박스 알고리즘 만들기 본문
현재 진행중인 프로젝트의 약관 동의 화면에서
모두 동의합니다를 누르면 전체 체크박스가 체크되고,
모두 동의에서 하나라도 체크가 해제되면 모두 동의합니다 체크박스가 해지되는 기능을 구현하려고 한다.
각 체크박스마다 클릭 리스너에 onCheckChanged() 함수를 호출하도록 했다.
onCheckChanged 는 어떤 버튼이 상태가 변경되었는지 확인하고, 상태 변화에 따라 체크박스 상태도 변경하는 함수이다.
class ActivityTermsAgree : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_terms_agree)
allCheckBtn.setOnClickListener { onCheckChanged(allCheckBtn) }
firstCheckBtn.setOnClickListener { onCheckChanged(firstCheckBtn) }
secondCheckBtn.setOnClickListener { onCheckChanged(secondCheckBtn) }
thirdCheckBtn.setOnClickListener { onCheckChanged(thirdCheckBtn) }
fourthCheckBtn.setOnClickListener { onCheckChanged(fourthCheckBtn) }
}
private fun onCheckChanged(compoundButton: CompoundButton) {
when(compoundButton.id) {
R.id.allCheckBtn -> {
if (allCheckBtn.isChecked) {
firstCheckBtn.isChecked = true
secondCheckBtn.isChecked = true
thirdCheckBtn.isChecked = true
fourthCheckBtn.isChecked = true
}else {
firstCheckBtn.isChecked = false
secondCheckBtn.isChecked = false
thirdCheckBtn.isChecked = false
fourthCheckBtn.isChecked = false
}
}
else -> {
allCheckBtn.isChecked = (
firstCheckBtn.isChecked
&& secondCheckBtn.isChecked
&& thirdCheckBtn.isChecked
&& fourthCheckBtn.isChecked)
}
}
}
}
'Android' 카테고리의 다른 글
[Android] 안드로이드 - SearchView 검색창 만들기 (0) | 2020.04.10 |
---|---|
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option (0) | 2020.04.08 |
[Android] 안드로이드 - Textview 에 버튼같은 효과 주기 (0) | 2020.03.31 |
[Android] 안드로이드 커스텀 체크박스 만들기 (0) | 2020.03.31 |
[Android] 안드로이드 - 현재 시간 가져오기, 시간 계산하기 (0) | 2020.03.31 |
Comments