2013-10-27 2 views
5

У меня есть один вид списка. Я назначил альтернативные цвета строк, как показано ниже, в методе getView() адаптера:Как установить цвет списка избранных строк и выбранный цвет фона элемента

if(position % 2 ==1) 
{ 
convertView.setBackgroundColor(Color.rgb(231, 249, 255)); 
} 
else 
{ 
convertView.setBackgroundColor(Color.rgb(195, 240, 255)); 
} 

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

я создал на listSelector XML, как показано ниже:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- Selected --> 
    <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

    <!-- Pressed --> 
    <item 
    android:state_selected="true" 
    android:state_focused="false" 
    android:drawable="@drawable/selected" /> 

</selector> 

и я назначили выше селектор в мой список, как показано ниже:

myList.setSelector(R.drawable.list_selector); 

Но Я не получаю выбранный цвет элемента списка.

Может кто-нибудь скажет мне, как установить альтернативный цвет строки и выбранный элемент списка в список андроидов.

+0

[здесь ответ] [1] [1]: http://stackoverflow.com/questions/21249981/how-to-change-custom-listview-row-color-change-alternatively/21250701? noredirect = 1 # 21250701 может помочь вам в изменении цвета строки –

ответ

2

Попробуйте как этот

artists_list_backgroundcolor.xml

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

colors.xml

<resources> 

    <color name="normal">#ffffff</color> 
    <color name="itemselected">#EDEDED</color> 

</resources> 

И использовать его в GetView()

if (position % 2 == 0) { 
     view.setBackgroundResource(R.drawable.artists_list_backgroundcolor); 
    } else { 
     view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE); 
    } 

Для справки Link

Надеется, что это поможет.

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