2012-05-07 42 views

Respuesta

3

como usted ha dicho que tiene el uso del adaptador de encargo para la vista de lista n lo que tienes que hacer es a continuación. en getView método de su adaptador, necesita establecer el color de fondo de la vista principal de su lista fila xml.

+0

no entiendo lo que estás diciendo. –

+0

Creo que necesita verificar la actualización de @Samir y obtendrá su respuesta. – Herry

+0

él (Samir) ya da la respuesta con el código. – Herry

13

en getView(...) method

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

actualización ::

@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; 
} 

clase titular

public class ViewHolder { 

    public TextView title; 
    public TextView description; 
} 
+0

este no está funcionando para mí No funciona en absoluto: – cesards

+0

funciona bien para mí .... –

+0

Échale un vistazo: S http://imageshack.us/photo/my-images/99/listrow.png/ – cesards

5

Hacer una matriz como se indica a continuación ya que ningún elemento de las listas supongo u tiene cinco artículos

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

y después de hacer en ur método getView del adaptador de atención al cliente al que a continuación

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

Muchas gracias por su valiosa sugerencia. –

+0

Gracias, si está disponible, más de 5 elementos y colores son solo 5, ¿cómo es posible? –

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); 

} 
Cuestiones relacionadas