2017-08-21 1 views
0

I have database like thisWie Schlüsselwert spinner Liste von Feuerbasis

Ich habe Spinner gesetzt, und ich will Schlüsselwert von Feuerbasis hinzufügen auf spinner Liste .Ich Verwendung Code unten zu setzen, aber nicht für mich arbeiten.

Ich möchte Schlüsselwert (2015-16,2016-17,2017-18) in Spinner hinzufügen.

Hier mein Code es funktioniert nicht.

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
    rootRef.child("First").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      final List<String> sess = new ArrayList<String>(); 

      for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
       String Session = areaSnapshot.getKey(); 
       sess.add(Session); 
      } 

      Spinner spinner = (Spinner) findViewById(R.id.spinner3); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(AdminMain.this, android.R.layout.simple_spinner_item, sess); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinner.setAdapter(adapter); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
+0

scheint, wie Sie für Loop-Innen benötigen, eine andere –

+0

try for-Schleife hinzufügen, 'für (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { für (DataSnapshot Termine: areaSnapshot.getChildren()) { String Session = dates.getKey(); sess.add (Sitzung); }} ' –

Antwort

0

Sie hören einen Pegel zu hoch in Ihrem JSON-Baum. Ihr onDataChange() wird jetzt mit dem Knoten CIVIL ausgelöst, während Sie wahrscheinlich eine Ebene tiefer möchten.

rootRef.child("First/CIVIL").addValueEventListener(

Eine Sache zu beachten: Dies wird alle Daten unter jedem Datum laden, nur um dieses Datum im Spinner anzuzeigen. Wenn das eine erhebliche Datenmenge ist, verschwenden Sie die Bandbreite Ihres Benutzers.

"Dates": { 
    "CIVIL": { 
    "2015-16": true, 
    "2016-17": true, 
    "2017-18": true 
    } 
} 

Die true Werte werden nur benötigt, um sicherzustellen, Firebase löscht nicht die Tasten:

ich Ihre Datenstruktur in diesem Fall Abflachung und hält einen separaten Knoten mit nur den Terminen berücksichtigen würde. Durch das Herunterladen dieses JSON-Zweigs wird sichergestellt, dass Sie nur die Mindestdaten herunterladen, die zum Füllen des Zahlenauswahlfelds erforderlich sind.

Verwandte Themen