views:

837

answers:

1

I need to set alternate color in list view rows but when i do that it removes/ disables the on focus default yellow background

I tried with backgroundColor rowView.setBackgroundColor(SOME COLOR);

also with backgrounddrwable.

rowView.setBackgroundColor(R.drawable.view_odd_row_bg);
<?xml version="1.0" encoding="utf-8"?>
<selector
   xmlns:android="http://schemas.android.com/apk/res/android"&gt;
   <item
      android:state_window_focused="false"
      android:drawable="@color/odd" />

   <!--
      Even though these two point to the same resource, have two states
      so the drawable will invalidate itself when coming out of pressed
      state.
   -->
   <item
      android:state_focused="true"
      android:state_enabled="false"
      android:state_pressed="true"
      android:drawable="@color/highlight" />
   <item
      android:state_focused="true"
      android:state_enabled="false"
      android:drawable="@color/highlight" />

   <item
      android:state_focused="true"
      android:state_pressed="true"
      android:drawable="@color/highlight" />
   <item
      android:state_focused="false"
      android:state_pressed="true"
      android:drawable="@color/highlight" />

   <item
      android:state_focused="true"
      android:drawable="@color/highlight" />

</selector>

but it wont work.

is there any way we can set background color and on focus color simultaneously which will work.

+2  A: 

I found this tutorial to be very helpful for me.

http://ykyuen.wordpress.com/2010/03/15/android-%E2%80%93-applying-alternate-row-color-in-listview-with-simpleadapter/

I was able to make the ListView items have alternating colors plus the focused item kept the default highlighted color.

Keith
How can i do that using bindView?I've tried something like this:int i = 0;view.setBackgroundResource(i%2==0 ? R.drawable.bindview_bg_gray : R.drawable.bindview_bg_white);i++;but after a few scrolls it gets all messy!
Philipz