Skip to content Skip to sidebar Skip to footer

Android Alternate Row Colors In Listview

public class ListView extends ListActivity { static String item; public void onCreate(Bundle icicle) { super.onCreate(icicle); ArrayAdapter

Solution 1:

Here is how to do that.

My example code is given here in brief:

Override the getView method in your adapter:

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {  
Viewview=super.getView(position, convertView, parent);  
if (position % 2 == 1) {
    view.setBackgroundColor(Color.BLUE);  
} else {
    view.setBackgroundColor(Color.CYAN);  
}

return view;  
}

Override ArrayAdapter and override getView method there.

So if your adapter is something like this:

publicclassMyAdapterextendsArrayAdapter

Your ListActivity will change like this:

ArrayAdapter<String> adapter = newMyAdapter<String>(this,
                android.R.layout.simple_list_item_1, Str.S);

Here's an example about overriding ArrayAdapter.

Solution 2:

if (position % 2 == 0) {

    rowView.setBackgroundColor(Color.parseColor("#A4A4A4"));

} else {

    rowView.setBackgroundColor(Color.parseColor("#FFBF00"));

}

Solution 3:

The Background color for a custom listview row can be set with

row.setBackgroundResource(R.color.list_bg_2)

method in custom listview adapter in

getView(int position, View convertView, ViewGroup parent)

I have tried many things like row.setBackgroundColor(0xFF00DD) but couldn't get it done,

here list_bg_2 is a color set res/values/color.xml

<?xml version="1.0" encoding="utf-8"?><resources><colorname="list_bg_1">#ffffff</color><colorname="list_bg_2">#fef2e8</color></resources>

Solution 4:

if view is ViewGroup, simple background setting doesn't work

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {  
    finalintrr= (position % 2 == 0) ? R.color.border_end_1 : R.color.black;
    finalintcc= getResources().getColor(rr);
    Viewview=super.getView(position, convertView, parent);  
    walk(view, rr, cc);
    return view;  
}
privatevoidwalk(View view, int rr, int cc){
    view.setBackgroundResource(rr);
    ViewGroupgroup= (ViewGroup)view;
    intnc= group.getChildCount();
    for (inti=0; i < nc; i++) {
        finalViewv= group.getChildAt(i);
        if (v instanceof ViewGroup)
            walk(v, rr, cc);
        else
            v.setBackgroundColor(cc);
    }
}

Post a Comment for "Android Alternate Row Colors In Listview"