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