Android
[Android] 안드로이드 - 이용약관 동의 체크박스 알고리즘 만들기
NukeOlaf
2020. 3. 31. 23:03
현재 진행중인 프로젝트의 약관 동의 화면에서
모두 동의합니다를 누르면 전체 체크박스가 체크되고,
모두 동의에서 하나라도 체크가 해제되면 모두 동의합니다 체크박스가 해지되는 기능을 구현하려고 한다.
각 체크박스마다 클릭 리스너에 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)
}
}
}
}