2016-07-09 26 views
3

ich diese Fehler bin Empfang als ich versuchte, eine Listenansicht mit Feuerbasis Adapter Feuerbasis UIPopulate Listview mit Firebase Adapter

com.google.firebase.database.DatabaseException aufzufüllen: Fehler Wert konvertieren Typ java.util.HashMap zu String com.google.firebase.database.DatabaseException: Klasse java.util.HashMap generischen Typparameter hat, benutzen Sie bitte GenericTypeIndicator statt

ist hier der Code

 DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
    DatabaseReference a = ref.child("info"); 

     final FirebaseListAdapter<String> adapter = 
       new FirebaseListAdapter<String>(this,String.class,android.R.layout.simple_list_item_1,a) { 
        @Override 
        protected void populateView(View v, String model, int position) { 

         TextView text = (TextView) findViewById(android.R.id.text1); 
         text.setText(model); 

        } 

hier ist ein Beispiel für json Daten

"info" : { 
    "KSTUJILdwPN305Fs7ujhga4knlG3" : { 
    "File Info" : { 
     "-JFRkA855rfOU7GtcK4" : { 
     "Name" : "John", 
     "Adress" : "Test Adress", 
     "Favourite_food" : "Bread", 
     }, 
+0

Können Sie ein kleines Beispiel für die JSON zeigen (als Text, keine Screenshot bitte) an Ort 'a'? Sie können dies erhalten, indem Sie es von Ihrer Firebase-Datenbankkonsole exportieren. –

+0

ok Ich aktualisierte Frage mit einem Beispiel für JSON-Daten –

Antwort

4

info Knoten bezieht sich nicht auf Ihr Datenmodell verwenden sollten. Es kann untergeordnete Knoten enthalten. Um das Modell zu erreichen, sollten Sie eine Referenz wie diese verwenden.

DatabaseReference a = ref.child("info").child(info_id).child("File Info").child(file_id); 

und Sie sollten ein Fileinfo-Modell statt String-Modell in

populateView(View v, FileInfo model, int position): 

verwenden und modellieren

public class FileInfo { 

private String Name; 
private String Adress; 
private String Favourite_food; 

public FileInfo() { 
} 

public FileInfo(String Name, String Adress, String Favourite_food) { 
    this.Name = Name; 
    this.Adress = Adress; 
    this.Favourite_food = Favourite_food; 
} 

public String getName() { 
    return Name; 
} 

public void setName(String Name) { 
    this.Name = Name; 
} 

public String getAdress() { 
    return Adress; 
} 

public void setAdress(String Adress) { 
    this.Adress = Adress; 
} 

public String getFavourite_food() { 
    return Favourite_food; 
} 

public void setFavourite_food(String Favourite_food) { 
    this.Favourite_food = Favourite_food; 
} 

} 
+0

danke. es funktioniert –

0
final FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this,String.class,android.R.layout.simple_list_item_1,a) 

public FirebaseListAdapter(Activity activity, 
       java.lang.Class<T> modelClass, 
       int modelLayout, 
       com.firebase.client.Firebase ref) 

modelClass - Firebase Will Marshall die Daten an einer Stelle in eine Instanz einer Klasse, die Sie

bieten

Ersetze den 2. Parameter des Konstruktors (String.class) durch ein POJO mit den Feldern aus info (name, addres s, favouriteFood)

FirebaseListAdapter

Edit:

Sie auch Getter in der PopulateView Methode

Verwandte Themen