2012-05-07 32 views

risposta

3

Come hai detto che si dispone di adattatore personalizzato uso per il ListView n quello che devi fare è sotto. nel metodo getView del proprio adattatore è necessario impostare il colore di sfondo della vista padre della riga xml della lista.

+0

Non capisco cosa stai dicendo. –

+0

Penso che sia necessario controllare l'aggiornamento di @Samir e riceverai la tua risposta. – Herry

+0

lui (Samir) dà già una risposta con il codice. – Herry

13

in getView(...) method

if (position == 0) { 
    view.setBackgroundResource(R.drawable.bg_list_even); 
} else if (position == 1) { 
    view.setBackgroundResource(R.drawable.bg_list_odd); 
} else... 

aggiornamento ::

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    View view = convertView; 
    ViewHolder holder; 

    if (view == null) { 
     LayoutInflater inflater = (LayoutInflater) activity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     view = inflater.inflate(R.layout.row, null); 

     holder = new ViewHolder(); 
     view.setTag(holder); 

    } else { 
     holder = (ViewHolder) view.getTag(); 
    } 

    holder.title = (TextView) view.findViewById(R.id.txttitle); 
    holder.description = (TextView) view.findViewById(R.id.txtdesc); 

    holder.title.setText("Title" + position); 
    holder.description.setText("Desc" + position); 

    //here set your color as per position 

    if (position == 0) { 
     view.setBackgroundResource(R.drawable.bg_list_even); 
    } else if (position == 1) { 
     view.setBackgroundResource(R.drawable.bg_list_odd); 
    } 
    return view; 
} 

classe titolare

public class ViewHolder { 

    public TextView title; 
    public TextView description; 
} 
+0

questo non funziona per me Non funziona affatto: – cesards

+0

sue opere bello per me .... –

+0

Check it out: S http://imageshack.us/photo/my-images/99/listrow.png/ – cesards

5

Fai un array come indicato di seguito come nessuna di elemento di elenco suppongo u avere cinque voci

int[] color_arr={Color.BLUE,Color.CYAN,Color.DKGRAY,Color.GREEN,Color.RED}; 

e dopo fare in ur metodo GetView dell'adattatore custome come di seguito

public View getView(int position, View convertView, ViewGroup parent) 
    { 

    LayoutInflater inflater = getLayoutInflater(); 
    View row=convertView; 

    row = inflater.inflate(R.layout.listview_custome, parent, false); 
    row.setBackgroundColor(color_arr[position]);// this set background color 

    TextView textview = (TextView) row.findViewById(R.id.tv_list); 
    ImageView imageview = (ImageView) row.findViewById(R.id.iv_list); 

    textview.setText(data_text[position]); 
    imageview.setImageResource(data_image[position]); 

    return (row); 

    } 
+0

Grazie mille per il tuo prezioso suggerimento. –

+0

Grazie, se disponibile più di 5 articoli e colori sono solo 5, come è possibile? –

1
public View getView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater inflater = getLayoutInflater(); 
    View rowView = convertView; 

    rowView = inflater.inflate(R.layout.listview_custome, parent, false); 
    rowView.setBackgroundColor(color_arr[position]);// this set background color 

    TextView textview = (TextView) rowView.findViewById(R.id.tv_list); 
    ImageView imageview = (ImageView) rowView.findViewById(R.id.iv_list); 

    textview.setText(data_text[position]); 
    imageview.setImageResource(data_image[position]); 
    if (position == 0) { 
     rowView.setBackgroundColor(Color.BLUE); 
    } 
    else if (position % 2 == 1) { 
     rowView.setBackgroundColor(Color.RED); 
    } 
    else if (position % 2 == 0) { 
     rowView.setBackgroundColor(Color.BLUE); 
    } 
    return (rowView); 

} 
Problemi correlati