作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过使用 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 个项目,这是它的输出。
08-10 09:38:15.771 6285-6285/com.zack.tinga.applicationtest I/System.out: Count Price: 23.98
08-10 09:38:15.790 6285-6285/com.zack.tinga.applicationtest I/System.out: Count Price: 23.98
价格是正确的,但问题是它使用列表的大小返回总和。我怎样才能让它在遍历列表后只返回一个总和。例如如果列表的大小是 15,那么它将在输出中打印 15 次总和,应该只打印一次。
这是应用程序的屏幕截图:
所以它应该显示单个总数,而不是 list.size();是目前的倍数。
最佳答案
您可以尝试使用 boolean
来检查它是否已经打印在 not 上。
首先在你的类中声明一个变量:
private boolean isPrinted = false;
然后在您的 getView
方法中检查如下:
if(!isPrinted)
{
countCart(textViewPrice);
isPrinted = true;
}
这将使该语句只运行一次,并且不会根据列表的大小运行。
关于java - 遍历列表后得到一个总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607645/
我是一名优秀的程序员,十分优秀!