Custom Android ArrayAdaper: Alternate background color for elements in ArrayAdapter

This ColorArrayAdapter extends ArrayAdapter, sets alternating color for each view in the created ArrayAdapter. In the getView method, it can be customized more.
[code language=”java”]
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ColorArrayAdapter extends ArrayAdapter<Object>{
private String[] list;

public ColorArrayAdapter(Context context, int textViewResourceId,
Object[] objects) {
super(context, textViewResourceId, objects);
list = new String[objects.length];
for (int i = 0; i < list.length; i++)
list[i] = (String) objects[i];
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = (TextView)super.getView(position, convertView, parent);
if(position%2==0)
{
view.setBackgroundColor(Color.parseColor("#FFD700"));
}
return view;
}

}
[/code]

The code below demonstrates how to use the above custom ArrayAdpter in a ListFragment, in the onCreate method.
[code language=”java”]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// We need to use a different list item layout for devices older than Honeycomb
int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
android.R.layout.simple_list_item_activated_1 : android.R.layout.simple_list_item_1;
String[] items = {
"view 1",
"view 2",
"view 3",
"view 4",
"view 5",
"view 6",
"view 7",
"view 8",
"view 9"};
// Create an array adapter for the list view, using the Ipsum headlines array
setListAdapter(new ColorArrayAdapter(getActivity(), layout, items));
}
[/code]

Search within Codexpedia

Custom Search

Search the entire web

Custom Search