Ich implementiere eine ExpandableListView und für jede Gruppe werden die childs und jedes Kind mit seiner eigenen Dauer angezeigt, und die Gruppe zeigt die Summe aller durations der childs.
Wenn ich jedoch auf ein Kind klicke, wird der Fehler angezeigt:
Zeile 1, Spalte -1 von CursorWindow konnte nicht gelesen werden. Stellen Sie sicher, dass der Cursor initialisiert ist korrekt vor dem Zugriff auf Daten von ihm.
Und ich rufe nicht die Methode setOnChildClickListener
auf. Und selbst wenn ich es anrufe, wenn ich auf das Kind klicke, hört es nicht auf, wenn ich einen Haltepunkt setze.
Das ist das Problem, ich kann nicht finden, wo der Fehler ist, da der Stacktrace nicht auf die Klassen meines Projekts zeigt, sondern auf die Klasse der Android-Native. Ich habe versucht, in jedem Teil meines Codes Haltepunkte zu setzen, aber wenn ich auf ein Kind klicke, wird keiner der Haltepunkte erreicht.
Übrigens verwende ich das ViewHolder -Muster, um mit den Ansichten umzugehen, und der Adapter ist ein CursorTreeAdapter
Hier ist mein Code - und der vollständige Stack-Trace ist am Ende :
%Vor%Vollständiger Stacktrace
%Vor%Wie @Jens im Kommentar erwähnt hat:
Sucht es nach einer Zeilenkennung (z. B. BaseColumns # _ID) und findet sie nicht im Cursor? Welche Spalten verwenden Sie in mContactsCursor - Sie haben die Zeilen-ID nicht vergessen?
In allen Abfragen muss die Spalte _id
angegeben werden. Dies hat den Fehler verursacht, nachdem ich die Spalte _id
zur Abfrage hinzugefügt habe, hat es funktioniert.
Wir könnten diesen Fehler sogar bekommen, selbst wenn wir _ID haben. Dies tritt auf, wenn wir in der Abfrage den falschen field_name angegeben haben oder den field_name in der Absicht oder wo auch immer verwendet übergeben haben.
Tags und Links android expandablelistview cursor