我正在计算我的列表中的价格总和,通过循环访问for循环,但它也返回列表中的总数。如果你不明白,这是我的代码尝试循环遍历列表。迭代遍历列表后获取单个总和
public class CartAdapter extends ArrayAdapter<Cart> {
private Activity context;
private List<Cart> carts;
public CartAdapter(@NonNull Activity context, ArrayList<Cart> carts) {
super(context, R.layout.cart_list_item, carts);
this.carts = carts;
this.context = context;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View cartViewItems = inflater.inflate(R.layout.cart_list_item, null, false);
TextView textViewName = cartViewItems.findViewById(R.id.cart_item);
TextView textViewPrice = cartViewItems.findViewById(R.id.cart_price);
ImageView imageViewCart = cartViewItems.findViewById(R.id.cart_img);
Cart cart = carts.get(position);
textViewName.setText(cart.getName());
textViewPrice.setText(String.valueOf(cart.getPrice()));
Picasso.with(context).load(cart.getImg()).into(imageViewCart);
countCart(textViewPrice);
return cartViewItems;
}
public double countCart(TextView textViewPrice){
double sum = 0.0;
for (int i = 0; i < carts.size(); i++) {
sum = sum + Double.parseDouble(textViewPrice.getText().toString());
}
System.out.println("Count Price: " + sum);
return sum;
}
}
和我的清单此刻的大小有2项内,这是它的输出。
9月8日至10日:38:15.771 6285-6285/com.zack.tinga.applicationtest I/System.out的:计数价格:23.98
9月8日至10日:38:15.790 6285-6285 /com.zack.tinga.applicationtest I/System.out:Count价格:23.98
价格是正确的,但问题是它返回使用列表大小的总和。我怎样才能让它在遍历列表后返回一个单一的总和。例如如果列表的大小是15,那么它将在输出上打印总和15次,它应该只打印一次。
这是应用程序的屏幕截图:)
因此,它应该显示单个总,不则为list.size(;与目前一样。
显示您的完整代码可能会调用2次 –
这没有任何意义。你在哪里迭代列表?你没有向我们展示什么? –
@DawoodibnKareem for循环用于迭代列表。 – Zack