Here is my code,
View Holder Class :
private class ViewHolder {
TextView tv1;
TextView tv2;
TextView tv3;
I have updated your code. Try this.
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder = null;
View view = convertView;
if(view == null){
view = lInflater.inflate(R.layout.add_productqty_listitem, parent,
false);
holder = new ViewHolder();
holder.tv1 = (TextView) view
.findViewById(R.id.add_product_label);
holder.tv2 = (TextView) view
.findViewById(R.id.Product_Code_label);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
Typeface font = Typeface.createFromAsset(ctx.getAssets(),
"gothic.ttf");
final ProductInfo product = data.get(position);
ctx.mProductIdList.add(product.getProductId());
try {
holder.tv1.setText(product.getProductName());
holder.tv1.setTypeface(font);
holder.tv1.setVisibility(View.VISIBLE);
holder.tv2.setTypeface(font);
holder.tv2.setVisibility(View.VISIBLE);
...............
...............
holder.edit_qty.setVisibility(View.VISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
return view;
}
Set the values once you get the holder object from getTag or first row initlization. so it should after if.. else condition checking
Check the comment also i hve mentioned in getview Method after if.. else
statment
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder = null;
View view = convertView;
if(view == null){
view = lInflater.inflate(R.layout.add_productqty_listitem, parent,
false);
holder = new ViewHolder();
try{ Typeface font = Typeface.createFromAsset(ctx.getAssets(),
"gothic.ttf");
holder.tv1 = (TextView) view
.findViewById(R.id.add_product_label);
holder.tv1.setTypeface(font);
holder.tv2 = (TextView) view
.findViewById(R.id.Product_Code_label);
holder.tv2.setTypeface(font);
view.setTag(holder);
} catch (Exception e) {
e.printStackTrace();
}
}else{
holder = (ViewHolder) view.getTag();
}
final ProductInfo product = data.get(position);
ctx.mProductIdList.add(product.getProductId());
// set data , text and visibility option after getting holder from view's getTag()
holder.tv1.setText(product.getProductName());
holder.tv1.setVisibility(View.VISIBLE);
holder.tv2.setVisibility(View.VISIBLE);
...............
...............
holder.edit_qty.setVisibility(View.VISIBLE);
return view;