База данных Firebase, как заполнить Spinner содержимым узла базы данных? - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь заполнить счетчик содержимым узла. Узел называется Members и имеет следующую структуру:

Members:
-LC7n2qjCocAME4XiGuH: "ZFjiRpFJ7HgxNWBQYOhNwS6HUys2"
-LC7nSFctVUdGr6pp7k-: "XIiVCBeu5TaxMCZY7ZIsINtKKBB2"

Я пытаюсь заполнить счетчик данными, назначенными клавишам. Таким образом, в этом случае спиннер будет иметь две записи "ZFjiRp ..." и "XIiVC ...". Узел Члены будут добавлять и удалять данные во время работы приложения, и счетчик должен это отражать. Я рассчитал цикл for, чтобы получить число дочерних элементов узла-члена для заполнения счетчика, но я не знаю, как пройти через узел и прочитать данные по одному.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Вы можете сделать это так:

final ArrayList<String> arrayList = new ArrayList<>();
        firebaseReference.child("Members").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot != null) {
                    Iterator<DataSnapshot> iterable = dataSnapshot.getChildren().iterator();
                    for (Iterator<DataSnapshot> it = iterable; it.hasNext(); ) {
                        DataSnapshot dataSnapshot1 = it.next();
                        arrayList.add(dataSnapshot1.getValue(String.class));
                    }
                    //set arraylist here to spinner adapter
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
0 голосов
/ 16 мая 2018
  1. Получить ссылку на базу данных вашей базы данных Firebase.
  2. Прикрепите childeventlistener к этой ссылке.
  3. В OnChildAdded и OnChildChanged обратном вызове получают значение из datasnapshot возьмите объект и привяжите его к спиннеру.
...