Ich versuche, meine Listenansicht mit Daten aus der Firebase-Abfrage zu füllen. Mein Code:Erstellen einer Listenansicht aus der Firebase-Abfrage
public class ShowGoalsListActivity extends AppCompatActivity {
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference messages = mDatabase.child("messages");
ArrayList<String> NameList = new ArrayList<String>();;
public void onCreate(Bundle saveInstanceState)
{
super.onCreate(saveInstanceState);
setContentView(R.layout.goals_list);
ListView animalList=(ListView)findViewById(R.id.listViewAnimals);
getNames();
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, NameList);
animalList.setAdapter(arrayAdapter);
animalList.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3)
{
String selectedAnimal=NameList.get(position);
Toast.makeText(getApplicationContext(), "Animal Selected : "+selectedAnimal, Toast.LENGTH_LONG).show();
}
});
}
void getNames()
{
Query queryRef = messages.orderByChild("pages");
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Map data = (Map) dataSnapshot.getValue();
String name = (String) data.get("name");
NameList.add(name);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot){
}
@Override
public void onCancelled(DatabaseError databaseError){}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s1){}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s2){}
});
}
}
Aber wenn ich zu meinem Layout gehe, ist diese Listenansicht leer. Aber wenn ich dann zu einem anderen Layout gehe und dann zu goals_list zurückkehre, enthält listview alle Elemente, die ich brauche. Was kann ein Problem sein?
Vielen Dank! Es funktioniert – DzouSi
Gut zu hören. Wenn meine Antwort nützlich war, klicken Sie auf den Upvote-Button links davon. Wenn es Ihre Frage beantwortet hat, klicken Sie auf das Häkchen, um es zu akzeptieren. Auf diese Weise wissen andere, dass Ihnen (ausreichend) geholfen wurde. –