Android Firebase население для просмотра списка

Нужна помощь с населением Firebase информации для ListView. Мне нужно достать всех детей из "Магазина", но не могу. Кто знает как решить пожалуйста помогите. В то время как печатное сообщение дает правильный массив, но я не могу реализовать его в ListView.

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dealer_list_view);

    mListView = (ListView) findViewById(R.id.dealer_listView);

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

    ref.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            DataSnapshot friendsSnapshot = dataSnapshot.child("Shops");
            for (DataSnapshot friendSnapshot : friendsSnapshot.getChildren()) {


                String message = friendSnapshot.child("Dealer").getValue(String.class);
                System.out.println(message);

                DatabaseReference ref = FirebaseDatabase.getInstance().getReferenceFromUrl("My URl"+message);

                FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(DealerListView.this,
                        String.class,
                        android.R.layout.simple_list_item_1,
                        ref) {

                    @Override
                    protected void populateView(View v, String s, int i) {

     TextView textView = (TextView) v.findViewById(android.R.id.text1);
                        textView.setText(s);
                   }
                };
                mListView.setAdapter(adapter);
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

Обновить

  - Shops
         -AAA
             Dealer: "AAA"
             Email: "a@mail.ru"
             SAP:   "D666"
         -BBB
             Dealer: "BBB"
             Email:  "r@mail.ru"
             SAP:     "D333"
         -CCC
             Dealer:  "BBB"
             Email:   "g@mail.ru"
             SAP:     "D222"

1 ответ

Кажется, ты слишком усложняешь дела. Это должен быть единственный код, который вам нужен:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Shops");

FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(
    DealerListView.this,
    String.class,
    android.R.layout.simple_list_item_1,
    ref) {
        protected void populateView(View v, String s, int i) {
          TextView textView = (TextView) v.findViewById(android.R.id.text1);
          textView.setText(s);
        }
        protected String parseSnapshot(DataSnapshot snapshot) {
            return snapshot.child("Dealer").getValue(String.class);
        }
};
mListView.setAdapter(adapter);

Таким образом, с этим кодом у вас есть список снимков магазина, а затем для каждого снимка извлеките значение Dealer недвижимость в parseSnapshot

Другие вопросы по тегам