Прежде всего удалите нижнюю строку из onBindViewHolder:
total += _chartdata.get(i).getPrice_prdct();
, потому что onBindViewHolder будет вызывать каждый раз, когда вы прокручиваете, и пытается восстановить позицию с помощью представления, поэтому мы не можем делать такие вещи здесь, такие как суммапродукта или количества или т. д.,
public int getMyTotalQuantity(){
int totalQuantity = 0;
for(int i=0; i<_chartdata.size(); i++){
if(_chartdata.get(i) != null && _chartdata.get(i).getTotal_quantity() != null &&
!TextUtils.isEmpty(_chartdata.get(i).getTotal_quantity())){
totalQuantity = totalQuantity + Integer.parseInt(_chartdata.get(i).getTotal_quantity());
}
return totalQuantity;
}
Если вы хотите, чтобы представление наконец отображалось с суммой количества, вы можете объявить метод, как указано выше, а затем использовать его в onBindViewHolder, как показано ниже:
if(i==_chartdata.size()-1){//check if list last element
// to get total quantity
Toast.makeText(context, "total quantity = " + getMyTotalQuantity(), Toast.LENGTH_SHORT).show();
}
Вы можете создать тот же метод, чтобы получить сумму и использовать ее в держателе вида связывания.