2017-12-14 9 views
0

Ich möchte einige Benutzerdaten, die ich von FireBase als Name, Alter, Geschlecht und Geburtstag bekomme. Ich habe einen FireBase Listener und die Liste muss jedes Mal aktualisiert werden, wenn die Datenbank geändert wird.Custom ListView Adapter von Firebase

Dies ist, wie ich Daten an den Adapter zu

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <TextView 
    android:id="@+id/textNameList" 
    android:textSize="25dp" 
    android:textAlignment="textStart" 
    android:text="Name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="start" 
    android:layout_margin="10dp"/> 

<TextView 
    android:id="@+id/textAgeList" 
    android:textSize="15dp" 
    android:textAlignment="textStart" 
    android:text="Age" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="start" 
    android:layout_margin="10dp"/> 
<TextView 
    android:id="@+id/textBirthdayList" 
    android:textSize="15dp" 
    android:textAlignment="textStart" 
    android:text="Birthday" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="start" 
    android:layout_margin="10dp"/> 
<TextView 
    android:id="@+id/textGenderList" 
    android:textSize="15dp" 
    android:textAlignment="textStart" 
    android:text="gender" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="start" 
    android:layout_margin="10dp"/> 


    </RelativeLayout> 

Wenn möglich möchte ich Liste und Bild von der Datenbank auflisten möchten gesendet

private void list(String Name){ 
    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mUser); 
    mListView.setAdapter(arrayAdapter); 
    mUser.add(Name,Age,Gender,Birthday); 
    arrayAdapter.notifyDataSetChanged(); 
} 

Dies ist das Layout ich.

+0

Verwenden addValueEvent listner es alle Änderungen passieren in diesem Knoten hören 'ref.addValueEventListener (neu ValueEventListener() {} ' –

+0

Vielen Dank, aber das Problem ist der ListView-Adapter, um die Daten zu zeigen –

+0

Sie müssen dieses 'final ArrayAdapter arrayAdapter = new ArrayAdapter <> (das, android.R.layout.simple_list_item_1, mUser); mlistView.setAdapter (arrayAdapter); ' außerhalb, und nur die neuen Werte aus der Datenbank hinzufügen, um die Liste 'mUser.add (Name, Alter, Geschlecht, Geburtstag);' dann gesetzt 'arrayAdapter.notifyDataSetChanged();' –

Antwort