Koppeln von FirebaseRecyclerViewAdapter an einen Boolean/String Map.Entry

Lesezeit: 2 Minuten

Ich benutze die FirebaseRecyclerViewAdapter von dem com.firebaseui:firebase-ui:0.2.0 Bibliothek an vielen Stellen meiner App. Meine Frage ist, wie man es in Situationen anwendet, in denen das Abfrageargument eine Reihe von ‘Index’-Eintragswerten (Map.Entry) zurückgibt.

Wie in der Firebase-Dokumentation angegeben (https://www.firebase.com/docs/android/guide/structuring-data.html), verwende ich Indizes, um die Datenstruktur flach zu halten. Dies führt zu einer Situation, in der ich diese Indizes an meinen ViewHolder binden muss. Innerhalb der Populate-View-Methode verwende ich den Schlüssel des Indexes, um die Daten abzurufen, mit denen der Viewholder gefüllt werden soll.

Ich habe Probleme beim Erstellen des Adapters und bin mir nicht sicher, wie ich das Argument „modelClass“ im Falle eines Boolean/String Map.Entry definieren soll:

mAdapter = new FirebaseRecyclerViewAdapter<Map.Entry<String, Boolean>, ItemViewHolder>(???.class, R.layout.my_card, ItemViewHolder.class, getItemIndexQuery(mKey) ) {
...
}

  • Ich habe gerade entdeckt, dass ich in dieser Situation Boolean als Modellklassentyp verwenden muss. Dadurch funktioniert der Adapter zwar, ist aber auch ziemlich nutzlos (da ich den Schlüssel eingeben muss und nicht den Wert).

    – Petrus

    1. Januar 16 um 21:53 Uhr

  • Können Sie ein JSON-Snippet (als Text, bitte kein Screenshot) hinzufügen, das Sie zu Ihrer Frage laden möchten? Ich würde es gerne wagen…

    – Frank van Puffelen

    2. Januar 16 um 0:23 Uhr

  • Frank, addListenerForSingleValueEvent sieht asynchron aus. Viewholder (Listenelemente) in Recyclerview werden wiederverwendet. Wenn das Abrufen eines Werts einige Zeit in Anspruch nimmt und der Benutzer in der Zwischenzeit durch das Listenelement scrollt und sein Viewholder für einige andere Daten wiederverwendet wird, kann der vorherige Slow-Fetch-Wert-Listener die Viewholder-Referenz aktualisieren, die er noch hält. Wenn ein Viewholder wiederverwendet wird, muss der vorherige Listener, der für diesen Viewholder arbeitet, abgebrochen oder synchronisiert werden?

    – Abhijit-K

    18. Februar 17 um 7:03 Uhr

  • @Puf, was ist, wenn ich Änderungen verfolgen möchte? items nicht nur einmal gelesen. Ich kann mir keinen besseren Weg vorstellen, dies zu tun, ohne die Zuhörer in einer Sammlung zu behalten und sie später alle aus ihren Refs zu entfernen cleanup() Anregungen?

    – Christian

    23. Februar 17 um 18:05 Uhr

  • In dieser Antwort wird nur ein String “date” -Wert von DataSnapshot abgerufen. Was ist, wenn ich das gesamte Modell anstelle nur einer Zeichenfolge abrufen möchte? Wie kann ich es erreichen?

    – Hon

    11. März 17 um 15:34 Uhr

.

685680cookie-checkKoppeln von FirebaseRecyclerViewAdapter an einen Boolean/String Map.Entry

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy