I am having two buttons and a text view on my listview item when I click the buttons to change the text of text view of that current item, but the text of the last item in list changes.I have given my adapter class below, can ask for more info if required. Thank You. Need Help.
public class CartAdapter extends BaseAdapter {
Context context;
LayoutInflater layoutInflater;
List cartProImageListA, cartProNameListA, cartProQuntListA, cartUnitPriceListA, cartIdlListA, cartpriceListA;
ViewHolder viewHolder;
int quantity = 0;
customButtonListener customListner;
int Position;
public interface customButtonListener {
public void onButtonClickListner(int position);
}
public void setCustomButtonListner(customButtonListener listener) {
this.customListner = listener;
}
public CartAdapter(Context context, List cartIdList, List cartProImageList, List cartProNameList, List cartProQtyList,
List cartUnitPriceList, List cartPriceList) {
this.context = context;
this.cartIdlListA = cartIdList;
this.cartProImageListA = cartProImageList;
this.cartProNameListA = cartProNameList;
this.cartProQuntListA = cartProQtyList;
this.cartUnitPriceListA = cartUnitPriceList;
this.cartpriceListA = cartPriceList;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return cartProNameListA.size();
}
@Override
public Object getItem(int i) {
return cartProNameListA.get(i).toString();
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder {
TextView cartProNameTextView, cartStockTextView, cartProPriTextView, cartprice;
ImageView cartProImageView;
Button plusBtnId, minusBtnId, cartRemoTextView;
}
/**
* Notifies the attached observers that the underlying data has been changed
* and any View reflecting the data set should refresh itself.
*/
@Override
public View getView(final int position, View view, ViewGroup viewGroup) {
view = layoutInflater.inflate(R.layout.confirmordercartview, null);
viewHolder = new ViewHolder();
viewHolder.cartProNameTextView = (TextView) view.findViewById(R.id.cartProNameTextViewId);
viewHolder.cartStockTextView = (TextView) view.findViewById(R.id.cartProQuntTextViewId);
viewHolder.cartProPriTextView = (TextView) view.findViewById(R.id.cartProPriceTextViewId);
viewHolder.cartRemoTextView = (Button) view.findViewById(R.id.cartRemovTextViewId);
viewHolder.cartprice = (TextView) view.findViewById(R.id.cartPrototalPriceTextViewId);
viewHolder.cartProImageView = (ImageView) view.findViewById(R.id.cartProImageImageViewId);
viewHolder.plusBtnId = (Button) view.findViewById(R.id.plusBtnId);
viewHolder.minusBtnId = (Button) view.findViewById(R.id.minusBtnId);
viewHolder.plusBtnId.setTag(position);
viewHolder.plusBtnId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
quantity++;
Position = (Integer) view.getTag();
viewHolder.cartStockTextView.setText(quantity + "");
}
});
viewHolder.minusBtnId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (quantity > 0) {
quantity--;
viewHolder.cartStockTextView.setText(quantity + "");
}
}
});
try
{
viewHolder.cartProNameTextView.setText(cartProNameListA.get(position).toString());
viewHolder.cartProPriTextView.setText("Unit Price: " + Globle.toTakeTwoDigitAfterDecimal(cartUnitPriceListA.get(position).toString()));
Glide.with(context).load("URL" + cartProImageListA.get(position).toString()).into(viewHolder.cartProImageView);
viewHolder.cartStockTextView.setText(cartProQuntListA.get(position).toString());
viewHolder.cartprice.setText("Price: " + cartpriceListA.get(position).toString());
viewHolder.cartRemoTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (customListner != null) {
customListner.onButtonClickListner(position);
}
}
});
} catch (
Throwable EE)
{
Log.e("Throwable", "" + EE);
}
return view;
}
}