Ich entwickle eine Anwendung, die Telefonkontakte mit CursorAdapter anzeigt. Als ich es ausführte, sah ich mich einer Listenansicht gegenüber, in der nur ein Kontakt wiederholt wurde ("David" ist einer meiner Kontakte, nur in Listview wiederholt)
David 017224860
David 017224860
David 017224860
David 017224860
David 017224860
David 017224860 .
.
.
.
Meine Aktivität sieht wie
aus %Vor%Und mein CursorAdapter sieht so aus:
%Vor%Ich habe ein paar Punkte bemerkt:
cursor.moveToNext()
. getView()
des Adapters ruft newView()
und bindView()
selbst auf; Sie sollten diese Methoden nicht selbst aufrufen. findViewById()
wiederholt aufzurufen. getColumnIndex()
wiederholt aufzurufen. Außerdem schlage ich vor, dass Sie CursorManager nicht mehr mit CursorLoader verwenden. Dies ist im Android-API-Leitfaden unter Loaders dokumentiert. Ein spezifisches Beispiel, das Sie nützlich finden könnten, ist hier .
Ein Cursor-Adapter verbindet einen Cursor mit einem ListView. Der Cursor ist eine Datenansicht der Daten und der ListView ist eine UI-Ansicht der gleichen Daten. Sie müssen nichts programmieren, damit der ListView mit dem Cursor synchron bleibt, das wird automatisch erledigt.
Sie müssen ListView mitteilen, welche Spalten im Cursor angezeigt werden sollen. Weitere Informationen finden Sie in der Dokumentation zum SimpleCursorAdapter Klasse. Normalerweise verwende ich diese Klasse, es sei denn, ich muss die Daten ändern, während ich sie vom Cursor zur ListView verschiebe.
Tags und Links android listview android-cursoradapter