ProblemFirebaseRecyclerAdapter - wie Datenbankabfrage nach der Erstellung
ich eine Liste von Elementen haben zu ändern, die in Android durch eine FirebaseRecyclerAdapter angezeigt. Ich erstelle diesen Adapter mit einer Datenbankreferenz auf der gesamten Liste der Elemente (sagen wir "Beiträge"). Der Post zeigt auch die Kategorie an und wenn der Benutzer auf die Kategorie klickt, möchte ich die Liste so aktualisieren, dass nur Objekte dieser Kategorie angezeigt werden. Ich
Lösung versucht, dass nicht funktioniert ich auf der „Kategorie“ Textview einen Klick Hörer setzen und wenn der Anwender auf das ich einen neuen Adapter mit der neuen Datenbankabfrage zu instanziieren versucht, aber es funktioniert nicht Arbeit.
Andere Ideen: es außerhalb der adpater Do: ein neues Intent erstellen das Fragment wieder aufzunehmen und einen neuen Adapter mit der neuen Abfrage
erstellen Frage Hat jemand mit der gleichen Situation umgehen, wo auf einem user click Sie möchten die ursprüngliche Liste der vom adpater abgerufenen Elemente filtern? Was ist die beste Lösung?
Einzelheiten
protected void populateViewHolder(final PostViewHolder viewHolder, final Post post, final int position) {
/* Set the post text, author and category */
viewHolder.postText.setText(post.getText());
viewHolder.postAuthor.setText(post.getAuthor());
viewHolder.postCategory.setText(post.getCategory());
/* Set a listener on category so that
I refresh data with only that category */
viewHolder.quoteCategory.setOnClickListener(new View.OnClickListener() {
Post selectedPost = getItem(position);
@Override
public void onClick(View v) {
String category = selectedPost.getCategory();
// !!!! NOW I HAVE TO CHANGE DATA SET !!! ///
Ich denke, jetzt habe ich richtig Db Referenz erzeugen kann ein neues Fragment mit einem neuen Adapter mit ... aber ist dies der beste Weg? Gibt es eine Möglichkeit, den gleichen Adapater in der bevölkerten Ansicht zu verwenden und eine andere Abfrage zu übergeben?
Vielen Dank für die Antwort, aber das Problem besteht nicht darin, eine Änderung im Datensatz zu melden ... das Problem ist, wie man den Datensatz ändert, nachdem der Adapter bereits erstellt wurde. "nachdem Sie den Datensatz geändert haben" ... wie kann ich das tun? – DavideN