2016-07-21 18 views
8

मेरी डेटाबेस इस तरह की व्यवस्था है भरने के लिए:कैसे Firebase से एक स्ट्रिंग सूची प्राप्त करने के लिए एक स्पिनर

enter image description here

मैं एक स्ट्रिंग सूची या के किसी भी रूप के रूप में areaName से सभी मूल्यों को प्राप्त करना चाहते हैं सूची और स्पिनर को पॉप्युलेट करने के लिए इसका इस्तेमाल करें। मुझे जो समस्या हो रही है वह यह है कि यह केवल अंतिम मूल्य (इस मामले में "न्यूयॉर्क") प्राप्त करता है।

fDatabaseRoot.child("areas").addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // Is better to use a List, because you don't know the size 
     // of the iterator returned by dataSnapshot.getChildren() to 
     // initialize the array 
     final List<String> areas = new ArrayList<String>(); 

     for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
      String areaName = areaSnapshot.child("areaName").getValue(String.class); 
      areas.add(areaName); 
     } 

     Spinner areaSpinner = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(UAdminActivity.this, android.R.layout.simple_spinner_item, areas); 
     areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     areaSpinner.setAdapter(areasAdapter); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

मुझे आशा है कि यह मदद करता है है: लेकिन, कम या ज्यादा, यह है कि आप क्या करना है है

fDatabaseRoot.child("areas").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
       String areaName = areaSnapshot.child("areaName").getValue(String.class); 

       Spinner areaSpinner = (Spinner) findViewById(R.id.spinner); 
       final String[] areas = {areaName}; 
       ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(UAdminActivity.this, android.R.layout.simple_spinner_item, areas); 
       areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       areaSpinner.setAdapter(areasAdapter); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
+0

यहां fDatabaseRoot.child क्या है? क्या मैं देख सकता हूं कि इसे कैसे शुरू किया जा रहा है? – Smac

उत्तर

15

मुझे लगता है कि कोड का परीक्षण नहीं है: यह मेरा वास्तविक कोड है!

सम्मान।

+0

और यह आश्चर्यजनक रूप से मदद की! बस मैं अपने भाई को क्या चाहता था, बहुत बहुत धन्यवाद !! : डी –

+0

क्या इसके लिए और अधिक कोड है? मैं अपने उदाहरण में उपयोग करने के लिए इस उदाहरण को समझने की कोशिश कर रहा हूं और मुझे स्वरूपण त्रुटियां मिल रही हैं – Smac

संबंधित मुद्दे