ja ściągam jakieś dane od FirebaseDatabase
a następnie umieszczenie ich w array
a następnie stara się pokazać ich w List
który jest w zwyczaju AlertDialog
.Dane pobierane z FirebaseDatabase jest uzyskiwanie pokazano na 3 oddzielnych AlertDialogs zamiast jednego
Oto kod:
query = mDatabase.child("child").child(anotherChild).child("yetAnotherChild");
uProfile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
query.orderByChild("someChild").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot != null) {
Map<String, String> newD = (Map<String, String>) dataSnapshot.getValue();
ArrayList<String> l = new ArrayList<String>();
l.add(newD.get("lol").substring(30));
String names[] = l.toArray(new String[0]);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Activity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_list, null);
alertDialog.setView(convertView);
alertDialog.setTitle("title");
ListView lv = (ListView) convertView.findViewById(R.id.lv);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, names);
lv.setAdapter(adapter);
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
alertDialog.show();
} else {
Toast.makeText(getBaseContext(), "NULLLLL", Toast.LENGTH_SHORT).show();
}
}
...
...
});
}
});
Oto struktura bazy danych:
app
-child
-anotherChild
-yetAnotherChild
-inaccessibleChild
-someChild: "value"
-lol: "value"
Nie mogę korzystać valueEventListener()
tu nie mam dostępu do inaccessibleChild
. inaccessibleChild
tutaj jest uid
innych użytkowników, którzy śledzili danego użytkownika. Jak mogę uzyskać do niego dostęp uid
?
Problemem jest to, że dane są coraz idące ale zamiast się widoczne na liście w jednym AlertDialog
, jest uzyskiwanie pokazano jeden po drugim w oddzielnym AlertDialog
.
Co tu jest nie tak?
Proszę dać mi znać.
ile dzieci jest pod "child/anotherChild/yetAnotherChild"? podłączasz 'ChildEventListener' i wygląda na to, że ma 3 dzieci pod tym węzłem, dlatego' onChildAdded' jest uruchamiany 3 razy (i 'alertDialog.show();' jest wywoływany 3 razy – Wilik
@ Wilik tak ... Tak właśnie się dzieje. "" Pozwól, aby 'alertDialog.show();' był wywoływany tylko 1 raz pokazując wszystkie 3 wartości? –
Odpowiedź Reaza Mursheda stanowi najlepszy przykład, używając 'ValueEventListener' – Wilik