如何将存储在ArrayList <string>中的不同值添加为“Strings”?

时间:2017-01-23 11:30:22

标签: android arraylist firebase numberformatexception

我正在检索存储在FirebaseDatabaseStrings的一些数字,并将它们全部存储在我的应用中的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中给出的这些数字?

2 个答案:

答案 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

相关问题