CheckBox와 CheckTextView는 안드로이드에서 제공하는 기본적인 위젯으로 일반적으로 항목들을 선택 및 해제하거나 특정 상태를 변경하는 장치로도 사용됩니다. 문득 "둘의 차이점은 뭘까?", "언제 어떤 걸 사용하는...

[안드로이드] CheckBox vs CheckTextView

CheckBox와 CheckTextView는 안드로이드에서 제공하는 기본적인 위젯으로

일반적으로 항목들을 선택 및 해제하거나 특정 상태를 변경하는 장치로도 사용됩니다.

문득 "둘의 차이점은 뭘까?", "언제 어떤 걸 사용하는 게 좋을까?"

궁금해졌고 확인했던 내용을 간략하게 정리하려고 합니다.

 

 

 

 

 

 

 

1. CheckMark 유무

CheckBox와 CheckTextView를 특별한 속성 설정 없이 화면에 호출해보면

CheckTextView의 경우 CheckMark는 없습니다.



 

CheckBox와 달리 CheckTextView의 경우 CheckMark가 필요하다면 따로 설정해줘야 합니다.

위, 아래, 왼쪽, 오른쪽 원하시는 영역에 CheckMark를 설정 할 수 있습니다.

 

[xml CheckMark 설정 방법]

<CheckedTextView
android:id="@+id/ctvName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableStart="?android:attr/listChoiceIndicatorMultiple"
android:gravity="center" />

 

[code CheckMark 설정 방법]

checkTextView.setCompoundDrawablesWithIntrinsicBounds(
drawable, /*left*/
null, /*top*/
null, /*right*/
null /*bottom*/
)

 

 

 

 

 

 

 

2. Check 상태 변경

CheckBox의 경우 사용자가 선택 및 해제 시 Check 상태는 변하고

setOnCheckedChangeListener 등록을 통해 상태를 callback 받을 수 있습니다.

checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {

} else {

}
}


반면 CheckTextView의 경우 setOnClickListener를 통해 직접 상태 변경을 해줘야 합니다.

checkTextView.setOnClickListener {
checkTextView.isChecked = !checkTextView.isChecked
}


 

 

 

 

 

 

3. CheckBox vs CheckTextView

크게 CheckMark 유무, Check 상태 변경에 차이점을 가진다는 걸 알 수 있었습니다.

조금 아쉬웠던 점은.. "언제 어떤 걸 사용하는 게 좋을까?"에 대한 정답은 찾지 못 했습니다.

(사실 "어떤 경우에 이걸 사용했을 때 좋다!" 시원한 정답을 기대했는데...ㅜㅜ)


살짝 주관적인 얘기를 해보자면.. CheckBox가 CheckTextView의 상위호환이라는 느낌을 받았습니다.

CheckTextView는 약간 날 것(?)의 느낌도 있구요..ㅎㅎ

사실 어떻게든 서로가 같은 UI 형태를 구성할 수 있고 CheckTextView만 가지는 강점을 찾지 못했어요.

그래서 굳이 CheckTextView를 사용해야 할 이유가 있을까? 라는 생각이 들었습니다.

아 물론 CheckTextView 사용을 더 편하게 생각할 수도 있습니다.

제 주관적인 생각으로 마무리한 것이니 마지막 내용은 참조만 해주세요!


 

 

0 comments: