我正在检索存储在FirebaseDatabase
中Strings
的一些数字,并将它们全部存储在我的应用中的ArrayList <String> aList
中,如下所示:
mDatabase.child("child").child(uid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
aList.add(childSnapshot.getValue().toString());
}
Log.d("aList", String.valueOf(aList));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
以下是log
显示的内容:
D/aList: [5.0, 3.5, 2.0, 2.5, 4.0, 3.5]
我尝试添加这样的数字:
Double d = Double.parseDouble(aList.toString()) + Double.parseDouble(aList.toString());
但得到错误:java.lang.numberformatexception: invalid double: [5.0]
我想知道是如何添加上面aList
中给出的这些数字?
答案 0 :(得分:1)
mDatabase.child("child").child(uid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
double val =0;
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
val =val+ Double.parseDouble(String.valueOf(childSnapshot.getValue()));
}
Log.d("!_@@_AND::>", String.valueOf(val));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:1)
使用for循环并遍历列表以在列表中添加数字:
for(int i = 0 ; i < obj.size() ; i++){
d += Double.parseDouble(obj.get(i));
}
System.out.println("Current array list is:"+d);
<强>样本强> http://ideone.com/SxQjbR