我需要从我的火力库数据库中总结所有项目和价格,但每次我添加项目总和相乘,那么我能做些什么来获得正确的项目总和
cou.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postS: dataSnapshot.getChildren() ){
ProductVar productVar = postS.getValue(ProductVar.class);
JumlaKuu += Integer.parseInt(productVar.getTotal());
ItemsKuu += Integer.parseInt(productVar.getItem());
Log.d("onVil2: ", String.valueOf(JumlaKuu));
}
jumla.setText(String.valueOf(JumlaKuu));
itemsNumberView.setText(String.valueOf(ItemsKuu));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:1)
尝试这样的事情。!
final ArrayList<Integer> valuesList = new ArrayList<>();
cou.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int JumlaKuu =0;
int ItemsKuu =0;
if (dataSnapshot.exists()) {
if (valuesList.size() > 0) {
valuesList.clear();
}
for (DataSnapshot postS : dataSnapshot.getChildren()) {
ProductVar productVar = postS.getValue(ProductVar.class);
JumlaKuu += Integer.parseInt(productVar.getTotal());
ItemsKuu += Integer.parseInt(productVar.getItem());
valuesList.add(Integer.parseInt(productVar.getTotal()));
Log.d("onVil2: ", String.valueOf(JumlaKuu));
}
}
jumla.setText(String.valueOf( getSum(valuesList)));
itemsNumberView.setText(String.valueOf(ItemsKuu));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
private int getSum(ArrayList<Integer> valuesList) {
int sum = -1;
for (Integer integer : valuesList) {
sum = integer + sum;
}
return sum;
}
答案 1 :(得分:1)
在你的代码中,旧的总和也被添加到新的中,因为当你的addValueEventListener被触发时你没有将sum设置为0。所以,每次你必须设置 JumlaKuu &amp; ItemsKuu 的值为0,如下所示。
cou.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
JumlaKuu = 0;
ItemsKuu = 0;
for (DataSnapshot postS: dataSnapshot.getChildren() ){
ProductVar productVar = postS.getValue(ProductVar.class);
JumlaKuu += Integer.parseInt(productVar.getTotal());
ItemsKuu += Integer.parseInt(productVar.getItem());
Log.d("onVil2: ", String.valueOf(JumlaKuu));
}
jumla.setText(String.valueOf(JumlaKuu));
itemsNumberView.setText(String.valueOf(ItemsKuu));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});