2017-05-07 2 views

Antwort

2

Die Standardimplementierung von FirebaseListAdapter ruft getValue() mit der Klasse auf, die Sie beim Erstellen des Adapters angegeben haben. Indem Sie parseSnapshot überschreiben, können Sie bestimmen, welcher Teil von jedem DataSnapshot an populateView() übergeben wird. Um den Schlüssel zu erhalten:

FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(
     this, 
     String.class, 
     android.R.layout.simple_list_item_1, 
     databaseReference 
) { 
    @Override 
    protected String parseSnapshot(DataSnapshot snapshot) { 
     return snapshot.getKey(); 
    } 

    @Override 
    protected void populateView(View v, String model, int position) { 
     TextView textView = (TextView) v.findViewById(android.R.id.text1); 
     textView.setText(model); 
    } 
}; 
+0

Dank seiner Arbeit. –

1

anzuzeigen diejenigen animals Sie diesen Code verwenden können:

FirebaseListAdapter<YourClass> firebaseListAdapter = new FirebaseListAdapter<YourClass>(this, YourClass.class, android.R.layout.simple_list_item_1, yourDatabaseReference) { 
     @Override 
     protected void populateView(View v, YourClass yourClass, int position) { 
      TextView textView = (TextView) v.findViewById(android.R.id.text1); 
      String animal = this.getRef(position).getKey(); 
      textView.setText(animal); 
     } 
    }; 

In dem YourClass ist Ihre Modellklasse. Sie können auch anstelle der YourClass sogar die String Klasse verwenden.

Ich hoffe, es hilft.

+0

Danke für die Antwort, ich habe das nicht versucht, aber es sieht so aus als würde es funktionieren –

Verwandte Themen