COMPUTING/Android

[안드로이드 개발] ListView 항목 선택시 글자 색상 변경하기

Exeter 2016. 1. 11. 22:00
반응형


* 안드로이드 프로그래밍을 학습 하면서 남기는, 개인적으로 참고 목적으로 작성하는 카테고리 입니다. 

내용의 상당 부분은 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>



반응형