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"