NullPointerException beim schnellen scrollen

  • Hallo,
    ich habe ein Problem das mich schon seit einigen Tagen ärgert und für das ich keine richtige Lösung finde:
    Ich habe ein kleines Programm gebastelt, welches irgendwann mal zu einer Universalfernbedienung heranwachsen soll. Soweit habe ich eine Liste mit einem eigenen Listenadapter erstellt, welche verschiedene Kategorien und für jedes Element noch einen Löschen Button beinhalten soll. Die Liste zeigt verschiedene Geräte an, die mit der Fernbedienung bedient werden können. Die Daten welche angezeigt werden sollen sind in einer internen Datenbank gespeichert. Mit dem letzten Eintrag der Liste gelangt man zu einer neuen activity wo man aus einer online Datenbank neue Geräte in die Datenbank des Handys laden kann.
    Soweit so gut. Es funktioniert ansich auch alles wie es soll, bis man anfängt etwas schneller zu scrollen. Dann stürzt das Programm nämlich ab und ich kann absolut nicht entdecken woran das liegen kann:



    Ich habe die Datenbank abfrage schon in einen anderen thread ausgelagert, aber die Fehlermeldung bleibt die Gleiche:



    Line 137 ist folgende:

    Code
    convertView.findViewById(R.id.Title_List_Item).setTag(devicesList.get(position));


    Allerdings wird weder convertView noch position oder devicesList zu null. Zudem bleibt der Fehler der gleiche, wenn ich die Zeile auskommentiere. Er zeigt dann nur auf die nächste Zeile.
    Ich hoffe mir kann jemand helfen. Ich bin fast am verzweifeln...

  • Wenn du das Problem auskommentierst entfernst du nicht den Ursprung.


    wenn ich da was von "aus dem internet laden" höre vermute ich ein Threadproblem :o


    und den holder solltest du lieber nicht als Methodenvariable angeben, das ist irgendwie sinnfrei

  • Sieht so aus als lieferte convertView.findViewById() nix, also ein null zurück - und zwar nur beim zu schnellen Scrollen.


    Mit dem ViewHolder pattern sollst du ja zu viel Rumgesuche via findViewById() vermeiden, hier machst du es aber permanent. Das halte ich für keine gute Lösung und offenbar bekommst du dadurch auch die Crashes.


    Leg dir diese Views lieber als Instanzvariable an oder pack sie dir mit als View in den ViewHolder.
    Dann musst du halt nur beim Zuweisen der Tags erst einmal prüfen, ob die Views auch ja nicht null sind.


    Ich würde übrigens auch das iconview deines ViewHolders beim Zuweisen des Separators nullen - die ConvertViews werden gern wiederverwertet und es kann durchaus passieren, dass dein Separator dann noch das vorherige Icon hat. Muss nicht zu Problemen führen, kann aber. Zumindest bei der Darstellung.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!