* 안드로이드 프로그래밍을 학습 하면서 남기는, 개인적으로 참고 목적으로 작성하는 카테고리 입니다.
내용의 상당 부분은 Google 검색 결과를 포함합니다.
안드로이드 리스트뷰(ListView)에서 특정 항목을 선택했을 때 글자 색상을 변경하려고 테스트 해본 결과 정리
1. xml에서 ListView 설정
android:choiceMode="singleChoice" 속성 사용
android:textColor="@drawable/selector_item" 과 같이 selector를 이용하여 조건부로 색상을 지정함
2. 실험 결과
1) 항목을 선택(select) 했을 경우 이므로 당연히 state_selected 조건에 의해 blue 색상으로 글자가 변경될 것으로 예상했으나, 실제 실행 결과는 state_activated 조건에 명시된 green 색상이 나타난다.
2) 만약 state_activated 조건을 삭제 하면 가장 하단 조건에 따라(즉, default) brown 색상이 나타난다.
3) 즉, 항목 선택시 state_selected 조건이 수행되지 않고, state_activated 조건이 수행됨. (원인불명..)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/white" />
<item android:state_focused="true" android:color="@color/red" />
<item android:state_selected="true" android:color="@color/blue" />
<item android:state_activated="true" android:color="@color/green" />
<item android:color="@color/brown"/> <!-- default -->
</selector>
'COMPUTING > Android' 카테고리의 다른 글
[안드로이드] Android Studio 실행시 프로젝트 선택할 수 있도록 변경하기 (0) | 2017.10.08 |
---|---|
[안드로이드 개발] TabLayout 에서 탭 변경시 키보드 숨기기 (0) | 2016.01.03 |
[이클립스] Target을 실제 장비로 설정하는 방법 (0) | 2015.06.11 |