I have a listview where every items have one TextView and 2 Buttons ( + and - ). I want to iterate the quantity from TextView when I press the + Button. After this, I need to sum up all items (price * item quantity) for every item from the list and put the result into new TextView(total cost). That is my adapter and activity main. I appreciate any help.
public class cartItemsAdapter extends BaseAdapter {
private ArrayList<items> itemsList;
private Context context;
public cartItemsAdapter(ArrayList<items> list,Context cont){
this.itemsList = list;
this.context=cont;
}
@Override
public int getCount() {
return this.itemsList.size();
}
@Override
public Object getItem(int position) {
return this.itemsList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView==null){
LayoutInflater inf = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inf.inflate(R.layout.list_cart_item_view,null);
holder = new ViewHolder();
holder.imageView = (ImageView)convertView.findViewById(R.id.icon_item);
holder.nameView = (TextView) convertView.findViewById(R.id.name_item);
holder.priceView=(TextView)convertView.findViewById(R.id.price_item);
holder.plusButton = (Button) convertView.findViewById(R.id.cart_plus_button);
holder.minusButton = (Button) convertView.findViewById(R.id.cart_minus_button);
holder.removeButton = (Button) convertView.findViewById(R.id.cart_remove_button);
holder.quantityView = (TextView) convertView.findViewById(R.id.cart_quantity_view);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}
items itm = itemsList.get(position);
holder.imageView.setImageResource(itm.getlImageId());
holder.nameView.setText(itm.getlName());
holder.priceView.setText(itm.getlPrice() + " $");
holder.quantityView.setText("1");
/*holder.plusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pquant=Integer.valueOf(quant.toString());
pquant++;
}
});
holder.minusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int mquant=Integer.valueOf(quant.toString());
mquant--;
}
});*/
return convertView;
}
private static class ViewHolder{
public ImageView imageView;
public TextView nameView;
public TextView priceView;
public Button plusButton;
public Button minusButton;
public Button removeButton;
public TextView quantityView;
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cart);
plusBtn = findViewById(R.id.cart_plus_button);
minusBtn = findViewById(R.id.cart_minus_button);
removeBtn = findViewById(R.id.cart_remove_button);
quantity = findViewById(R.id.cart_quantity_view);
listView = (ListView) findViewById(R.id.cart_category_listview);
favoriteDbHelper = new DatabaseHelper(this);
item = favoriteDbHelper.getAllDataCart();
myAdapter = new cartItemsAdapter(item, this);
listView.setAdapter(myAdapter);
}