2017-01-23 3 views
-1

Je récupérer des numéros stockés dans FirebaseDatabase comme Strings et de les stocker tous dans un ArrayList <String> aList dans mon application comme ceci:Comment ajouter différentes valeurs stockées dans une ArrayList <String> en tant que 'Strings'?

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) { 

      } 
     }); 

Voici ce que log montre:

D/aList: [5.0, 3.5, 2.0, 2.5, 4.0, 3.5] 

J'ai essayé d'ajouter ces numéros comme ceci:

Double d = Double.parseDouble(aList.toString()) + Double.parseDouble(aList.toString()); 

mais a obtenu l'erreur: java.lang.numberformatexception: invalid double: [5.0]

Ce que je veux savoir comment puis-je ajouter ces chiffres donnés dans le aList ci-dessus?

+2

essayez ceci: 'for (int i = 0; i

+1

Pas certain Je suis. Vous devez parcourir le tableau - vous semblez essayer d'ajouter tout le tableau à lui-même. – ShibbyUK

Répondre

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("[email protected]@_AND::>", String.valueOf(val)); 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
+0

aidez s'il vous plaît avec celui-ci: http://stackoverflow.com/q/41910271/6144372 –

1

utiliser une boucle et boucle à travers la liste pour ajouter les numéros dans la liste:

for(int i = 0 ; i < obj.size() ; i++){ 
    d += Double.parseDouble(obj.get(i)); 
    } 
    System.out.println("Current array list is:"+d); 

DEMO http://ideone.com/SxQjbR