[ERLEDIGT] (Verständnis-)Probleme mit SwipeRefreshLayout

  • 9 Antworten
  • Letztes Antwortdatum
lordzwieback

lordzwieback

Erfahrenes Mitglied
210
Moin,

ich möchte eine Liste per Swipe nach unten aktualisieren. Hab bisschen recherchiert und dann nach dem Tutorial von Google ein SwipeRefreshLayout um mein ListView gebaut.

Danach habe ich das Layout als Eigenschaft der Activity/Klasse initialisiert und zugewiesen und wollte danach den setOnRefreshListener einbinden. Das hat auch super funktioniert, nur verabschiedet sich die App nach dem Ausführen direkt mit dem folgenden Log:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.SwipeRefreshLayout.setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener)' on a null object reference

Verwiesen wird auf die Zeile, in der ich meinen setOnRefreshListener initialisiere. Ich verstehe nichts so ganz, wieso ich an dieser Stelle einen null-Wert zurückbekomme.

Vielleicht hat ja wer eine Idee.

Vielleicht noch interessant: Wenn ich den setOnRefreshListener auskommentiere, läuft die App super, bis ich den Swipe nach unten mache. Aber selbst dann bringt er die Ladeanimation und hört damit eben nicht mehr auf, da nirgends setRefreshing auf false gesetzt wird. Die App selbst schmiert dabei aber nicht ab. Das heißt für mich, dass das SwipeLayout schon irgendwie richtig eingebaut ist, es fehlt eben der Listener und somit ist das ganze eher unpraktisch.

EDIT: Habe auch schon versucht, den Listener direkt oben in der Klassendeklaration per implements einzubinden und die onRefresh Methode als Override zu nutzen, aber gleiches Ergebnis.
 
Hallo Moritz,

ich habe mal versucht das Ding für einen WebView zu integrieren und irgendwann mal verzweifelt aufgegeben.
Der hats auch nicht getan
 
Das ist doch aber irgendwie seltsam. Wie machen das andere Apps? Bei denen funktioniert das anstandslos.

Gibts da noch ne alternative Lösung, um zu dem Ergebnis zu kommen?
 
Ich habe es dann nicht mehr weiterverfolgt -
Vielleicht weis ja von den anderen Jungs irgendwas Schlaues
 
Ich mein klar, ich könnte auch einfach den Refresh Button im Menü benutzen, aber irgendwie find ich das runterwischen "smoother". :D
 
Im Log steht, dass das Objekt, auf dem die Methode aufgerufen wird null ist. Du hast also wahrscheinlich vergessen deinem Objekt mit findViewById() einen Wert zuzuweisen..

Ich persönlich verwende das SwipeRefreshLayout in meiner App dreimal - bislang problemlos :)
 
Die Zuweisung habe ich definitiv. Kann morgen mal meinen Code posten.
 
Beim Code rausholen und kopieren, um euch das zu zeigen is mir ein Tippfehler in der ID des Layoutobjekts aufgefallen. Irgendwie schein ich immer nur an mir selbst zu scheitern. :D
 
Wie gesagt, Fehler beim zuweisen :D
 
Manchmal ist es zu offensichtlich ... :D
 
Zurück
Oben Unten