2015-03-05 4 views
0

У меня есть Listview. Я хочу, чтобы цвет текста, который я выбрал, изменил на белый, когда я его выбрал, и остался белым, однако, когда я выбираю другой элемент в списке, я хочу, чтобы цвет ранее выбранного элемента возвращался к черному по умолчанию, и новый выбранный элемент для изменения на белый.ListView TextColor change

Мой color_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" 
     android:color="@color/black" /> 
    <item android:state_focused="true" android:state_pressed="true" 
     android:color="@color/white" /> 
    <item android:state_focused="false" android:state_pressed="true" 
     android:color="@color/white" /> 
    <item android:color="@color/black" /> 
</selector> 

Это только превращает TextColor белым на, если я держать деталь нажатой.

ответ

1

Используйте state_activated Для этого вы действительно обрабатываете события пресса в своем селекторе, который является переходным состоянием, которое становится ложным, как только пользователь удаляет их палец.

Вы также можете найти state_selected, отзыв Explanation of state_activated, state_selected, state_pressed, state_focused for ListView для получения дополнительной информации.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    . 
    . 
    . 
    <item android:state_activated="true" android:color="@color/white" /> 
    <item android:state_selected="true" android:color="@color/white" /> 

    <item android:color="@color/black" /> 
</selector> 
+0

Ты мой человек, босс, спасибо. –

Смежные вопросы