Я пытаюсь изменить цвет элемента списка в Android, но не могу заставить его работать. Я хочу, чтобы цвета чередовались ... Я сделал свой собственный адаптер, и внутри метода getView я изменил цвет, прежде чем возвращать представление списка, но он не работает, я не знаю почему ...
Вот мой код:
public class EventoAdapter extends ArrayAdapter<Evento>{
Context context;
int layoutResourceId;
ArrayList<Evento> evento = null;
public EventoAdapter(Context context, int textViewResourceId,
ArrayList<Evento> objects) {
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
this.layoutResourceId = textViewResourceId;
this.context = context;
this.evento = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row = convertView;
EventoHolder holder = null;
if(row == null){
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new EventoHolder();
holder.nombre = (TextView)row.findViewById(R.id.nombreEvento);
holder.total = (TextView)row.findViewById(R.id.totalEvento);
holder.moneda = (TextView)row.findViewById(R.id.moneda);
holder.fecha = (TextView)row.findViewById(R.id.fecha);
row.setTag(holder);
}else{
holder = (EventoHolder)row.getTag();
}
Evento ev = evento.get(position);
holder.nombre.setText(ev.getNombre());
holder.total.setText(Integer.toString(ev.getTotal()));
holder.moneda.setText("$");
holder.fecha.setText("20/12/11");
if(position%2==0){
row.setBackgroundColor(R.color.colorPar);
}else{
row.setBackgroundColor(R.color.colorImpar);
}
return row;
}
static class EventoHolder{
TextView nombre;
TextView total;
TextView moneda;
TextView fecha;
}
}
Конечно, я определил colorPar и colorImpar внутри моего собственного ресурса colors.xml.
Есть идеи, почему это не работает ??
Спасибо!