Les éléments de la liste de la position de répéter dans getview

Je suis entrain de créer une liste personnalisée de vue à l'aide de baseadapter.j'ai 10 de l'élément de liste de ma liste.mon problème est que afetr 6 éléments ,les 4 premiers sont extensibles.je l'ai juste imprimé valeurs de position dans getview.il donne 0,1,2,3,4,5,6,7,8,9,0,1,2,3.Mon code est ci-dessous.

merci à l'avance

public class ProductListAdapter extends BaseAdapter  implements OnClickListener{    
/*
* developer :sanu
* date :10-4-2013
* time :3.34 pm
*/
public View row;
private String[] productName;
private String[] producttype;
private String[] priceRangeFrom;
private String[] priceRangeTo;
private String[] productImage;
private Activity activity;
private static LayoutInflater inflater=null;
static String posClicked;
ViewHolder holder;
Integer height1;
Integer width1;
Typeface tf;
Integer FirmaCount;
public ImageLoader imageLoader; 
public ProductListAdapter(Activity a,String[] name,String[] type,String[] price_from,String[] price_to,String[] image,Typeface tf) {
activity    =  a;
productName = name;
producttype = type;
priceRangeFrom = price_from;
priceRangeTo = price_to;
productImage = image;       
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return productName.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
} 
public int getViewTypeCount (int position)
{
return position;
}
public static class ViewHolder{
public TextView nameProduct;
public TextView typeProduct;
public TextView priceRangeProduct;
public ImageView productImage;
public ImageView plusImage;
public RelativeLayout mainLayout;
public int position;  
}
public View getView(int position, View convertView, ViewGroup parent) {     
if(convertView == null){            
convertView = inflater.inflate(R.layout.product_list_details,parent, false);
holder=new ViewHolder();
holder.nameProduct =(TextView)convertView.findViewById(R.id.name);
holder.typeProduct =(TextView)convertView.findViewById(R.id.product);
holder.priceRangeProduct =(TextView)convertView.findViewById(R.id.pricerange);
holder.productImage =(ImageView)convertView.findViewById(R.id.image);
holder.plusImage =(ImageView)convertView.findViewById(R.id.dot);
holder.mainLayout = (RelativeLayout)convertView.findViewById(R.id.mainlayout);
holder.nameProduct.setText(productName[position]);      
if(producttype[position].length()>18)
{
holder.typeProduct.setText(producttype[position].substring(0,18)+"...");
}
else
{
holder.typeProduct.setText(producttype[position]);
}
holder.priceRangeProduct.setText(priceRangeFrom[position].substring(0,priceRangeFrom[position].length()-2)+" To "+priceRangeTo[position].substring(0, priceRangeTo[position].length()-2));          
imageLoader.DisplayImage(productImage[position], holder.productImage);
convertView.setTag(holder);                     
}
else
{           
holder = (ViewHolder)convertView.getTag();
}       
holder.plusImage.setTag(Integer.toString(position));
holder.plusImage.setOnClickListener(this);  
holder.mainLayout.setTag(Integer.toString(position));
holder.mainLayout.setOnClickListener(this); 
return convertView;
} 
déplacer ce holder.nameProduct.setText(productName[position]); if(producttype[position].length()>18) { holder.typeProduct.setText(producttype[position].substring(0,18)+"..."); } else { holder.typeProduct.setText(producttype[position]); } en dessous de la dernière d'autre et d'essayer
je suggère d'étendre ArrayAdapter au lieu de cela, puisque vous pouvez faire la même action, comme ci-dessus avec moins de considérations

OriginalL'auteur Sanu | 2013-11-09