0

Nehmen wir an, ich habe eine RecyclerView, und wenn es Daten aus der Datenbank lädt, möchte ich etwas tun. Ich würde es so vorstellen:Gibt es eine bestehende Methode, die auf einen RecyclerView-Artikelwechsel wartet?

recyclerView.setOnUpdateListener(new OnUpdateListener() { 
      @Override 
      public void onChanged() { 
       //I do whatever I want 
      } 
     }; 

Was ich gesehen habe:

Ich habe this Link gesehen, aber die Frage ist nicht ganz klar; und es ist auch nicht die Antwort, da es nicht erklärt, was es tut. Und es ist ziemlich alt.

Ich habe gesehen this, aber es ist noch nicht beantwortet.


Warum?

Weil ich Daten von der Datenbank lade, und ich möchte einen Fortschrittskreis anzeigen, während es geladen wird, und es abweisen, wenn Daten angezeigt werden.

Hinweis: Ich verwende eine FirebaseRecyclerAdapter.

Antwort

2

Verwenden Sie RecyclerView.AdapterDataObserver.

wie folgt aus:

RecyclerView.Adapter adapter = ... 
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { 
    @Override 
    public void onChanged() { 
     //Do some task. 
    } 
}); 
recyclerView.setAdapter(adapter); 
+0

Muss ich all diese Methoden overrided hinzufügen müssen? Oder kann ich onChanged einfach überschreiben? –

+0

'RecyclerView.AdapterDataObserver' ist eine abstrakte Klasse. Du hast dich also einfach übergeändert. Ich habe meine Antwort aktualisiert. – nshmura