Ansgar M
- Forum-Beiträge: 1.544
25.11.2010, 20:55:49 via Website
25.11.2010 20:55:49 via Website
Hi,
ich hab ein kleines Problem.
Ausgangsituation (Problemstellung):
Ich habe eine ListView, mit List Items mit je einem ImageView und zwei TextViews. Der Adapter ist ein SimpleCursorAdapter.
Die Daten werden aus der Datenbank geladen. TextViews funktionieren auch. Nur beim Bild gibt es Probleme. Der Name soll aus dem Cursor geladen werden und damit das entsprechende Bild aus den Assets "geangelt" werden
Lösungsansatz:
Dafür habe ich einen eigenen ViewBinder geschrieben, der die Methode setViewValue überschreibt. Soweit so gut. Nur bekomme ich durch ihn die View (Ich filter dann nach ImageView), den Cursor sowie die Position der View in dem ListItem. Ich brauche aber die Position in der Liste, um den richtigen Bildnamen aus dem Cursor zu bekommen. Deswegen habe ich eine Zählvariable genommen und setze sie immer einen höher und hole den Namen von der "Position der Zählvariable".
Problem (force close) :
Klappt soweit auch ganz gut, bis ich die 100 Elemente "verscrollt" habe, also entweder bis ganz unten gescrollt bin und dann wieder hoch versuche oder ganz oft hin- und hergescrollt hab.. Dann gibt es eine CursorIndexOutOfBoundsException (was an dem hochgezählten Wert 100 liegt, denn diese Zeile gibt es natürlich nicht).
Im Logcat kommt beispielsweise noch die Methode bindView oder setView vor (bei dieser "at.. at.. at..-Auflistung") muss ich die auch noch überschreiben, oder müssen diese Methoden die Position durchreichen? Sollte ich bei der ImageView die getParent()-Methode verwenden um das ListItem zu bekommen, über das ich die Position in der Liste herausfinden kann?
Danke für Antwort und durchlesen!
Ich steh' grad aufm Schlauch, bin langsam Google-müde und weiß nicht mehr weiter.
Lg Ansgar
P.S. Ich dachte, ich poste erstmal keinen Haufen an Quelltexten, sondern geb euch die Chance es mir so zu erklären
ich hab ein kleines Problem.
Ausgangsituation (Problemstellung):
Ich habe eine ListView, mit List Items mit je einem ImageView und zwei TextViews. Der Adapter ist ein SimpleCursorAdapter.
Die Daten werden aus der Datenbank geladen. TextViews funktionieren auch. Nur beim Bild gibt es Probleme. Der Name soll aus dem Cursor geladen werden und damit das entsprechende Bild aus den Assets "geangelt" werden
Lösungsansatz:
Dafür habe ich einen eigenen ViewBinder geschrieben, der die Methode setViewValue überschreibt. Soweit so gut. Nur bekomme ich durch ihn die View (Ich filter dann nach ImageView), den Cursor sowie die Position der View in dem ListItem. Ich brauche aber die Position in der Liste, um den richtigen Bildnamen aus dem Cursor zu bekommen. Deswegen habe ich eine Zählvariable genommen und setze sie immer einen höher und hole den Namen von der "Position der Zählvariable".
Problem (force close) :
Klappt soweit auch ganz gut, bis ich die 100 Elemente "verscrollt" habe, also entweder bis ganz unten gescrollt bin und dann wieder hoch versuche oder ganz oft hin- und hergescrollt hab.. Dann gibt es eine CursorIndexOutOfBoundsException (was an dem hochgezählten Wert 100 liegt, denn diese Zeile gibt es natürlich nicht).
Im Logcat kommt beispielsweise noch die Methode bindView oder setView vor (bei dieser "at.. at.. at..-Auflistung") muss ich die auch noch überschreiben, oder müssen diese Methoden die Position durchreichen? Sollte ich bei der ImageView die getParent()-Methode verwenden um das ListItem zu bekommen, über das ich die Position in der Liste herausfinden kann?
Danke für Antwort und durchlesen!
Ich steh' grad aufm Schlauch, bin langsam Google-müde und weiß nicht mehr weiter.
Lg Ansgar
P.S. Ich dachte, ich poste erstmal keinen Haufen an Quelltexten, sondern geb euch die Chance es mir so zu erklären
— geändert am 25.11.2010, 20:57:53
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.