Измените цвет фона списка ListView, но сохраните стиль селектора по умолчанию?

Я пытаюсь программно установить пользовательский цвет фона в моем адаптере ListView, но я хочу сохранить стиль Listview Selector по умолчанию для Android.

Я устанавливаю фоновый цвет, используя метод «SetBacgroundResource» в моем представлении.

Я использую Android 4.0, и я попробовал пример из этого блога http://daniel-codes.blogspot.co.nz/2010/07/how-to-change-listview-rows-background.html, но, используя этот пример, селектор Однако неодинаковый цвет фона не отображается.

Как я могу достичь этого в Android 4.0 ICS?

EDIT: Вот ресурс, который я использую для фона элемента списка.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" /> <item android:state_selected="true" android:drawable="@android:color/transparent" /> <item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/transparent" /> <item android:state_selected="false" android:drawable="@color/list_item_first" /> </selector> 

Код, который я использую для установки этого фона, находится внутри метода GetView моего адаптера. Код:

 convertView.setBackgroundResrouce(R.drawable.list_item_dark); 

Solutions Collecting From Web of "Измените цвет фона списка ListView, но сохраните стиль селектора по умолчанию?"

Вы пытались установить свойство android: drawSelectorOnTop вашего ListView равным true?
Вы сможете установить фон для своего элемента и увидеть элемент, выделенный при нажатии.

Попробуйте написать свой пользовательский адаптер и установите для него параметр BackgroundView BackgroundColor (если позиция нечетное число BLACK, даже RED). Также вы можете отправить список цветов в адаптер и установить другой цвет для каждого rowView

 public View getView(int position, View convertView, ViewGroup parent) { View rowView = convertView; enter code here if(rowView == null) { if((position % 2)==1){ rowView.setBackgroundColor(Color.BLACK) //colorList :setBackgroundColor( colorList.get(position) ) } else{ rowView.setBackgroundColor(Color.RED) } } return rowView; } 

Попробуй это :

В макете Row задайте свойства фона для

 android:background="@drawable/your_selector" 

И ваш набор listView

 android:listSelector="@drawable/your_selector" 

Попробуйте применить этот стиль к списку ListView:

 <style name="List"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">fill_parent</item> <item name="android:background">#FFFFFF</item> <item name="android:dividerHeight">1dp</item> <item name="android:divider">#CCCCCC</item> <item name="android:cacheColorHint">#FFFFFF</item> <item name="android:listSelector">#00000000</item> </style> 

И в вашем xml-макете это:

 <ListView android:id="@+id/listView" style="@style/List" android:paddingTop="1dp"/>