Как установить альтернативный цвет строки Listview и цвет фона выбранного элемента

У меня есть одно представление списка. Я назначил альтернативные цвета строк, как показано ниже, в методе адаптера 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);

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

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


person user2740599    schedule 27.10.2013    source источник
comment
[вот ответ] [1] [1]: stackoverflow.com/questions/21249981/ может помочь вам изменить цвет строки   -  person Aditi K    schedule 21.01.2014


Ответы (1)


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

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);
    }

Для справки Ссылка

Надеюсь, что это поможет вам.

person Amit Gupta    schedule 27.10.2013