1

Ich habe kürzlich ein StackOverflow-Dokumentationsbeispiel geschrieben, das veranschaulicht, wie ein ListView aus einer Datenbank mit einem SimpleCursorAdapter aufgefüllt wird.CursorAdapter veraltet?

hätte es abgelehnt mit folgenden Begründung:

Niemand sollte mehr mit Cursoradapter werden. Sie waren aus einem bestimmten Grund veraltet!

Ich war mir nicht bewusst, dass Cursor-Adapter veraltet waren (und aus welchem ​​Grund), also googelte ich es. Alles, was auftauchte, waren ein paar Posts, die ungefähr dieselbe Frage stellten, die ich gerade stellte, und die Standardantwort schien zu sein. "Nur einer der Konstruktoren ist veraltet, nicht die gesamte CursorAdapter-Klasse!"

Also welcher Weg ist es? Wurde mein Beitrag zu Recht abgelehnt oder nicht?

Wie sollte ein ListView bestückt werden, wenn nicht durch einen SimpleCursorAdapter? Ich weiß, es gibt Dinge wie CursorLoader, aber für eine einfache Aufgabe wie die Anzeige einiger Daten in einem ListView es scheint wie ein unnötiger Ärger mit Inhaltsanbietern und Sachen zu tun haben, wenn das gleiche mit einer AsyncTask und einer SimpleCursorAdapter erreicht werden kann. ..

+0

AFAIK, sind sie nicht veraltet, aber ich würde gerne wissen, warum der Benutzer glaubt sie sind. Das heißt, haben sie eine offizielle Quelle für diese Information? Vielleicht bin ich einfach aus der Schleife. –

+0

Ja, ich möchte das gleiche wissen, aber ich habe keine Möglichkeit gefunden, den Benutzer zu kontaktieren, der mein Beispiel abgelehnt hat und sie gefragt hat ... – BadCash

+0

Sie könnten einen [Chatraum mit ihm] (http: // chat .stackoverflow.com/users/4409409 /) und sehen, ob er antwortet. Das ist ein Toss-Up. Manche Benutzer mögen keinen Chat. Er ist ziemlich aktiv vor Ort, also sind die Chancen annehmbar, dass er irgendwann bald da sein wird, um den Raum einladen zu sehen. –

Antwort

0

Nur die der Konstruktor standardmäßig FLAG_AUTO_REQUERY verwendet ist veraltet, weil:

Diese konstante in API-Ebene weiterentwickelt wurde 11. Diese Option wird abgeraten, da es in Cursor-Abfragen führt auf der durchgeführt wird Anwendungs-UIhread und kann daher schlechte Reaktionsfähigkeit oder sogarverursachenAnwendung reagiert nicht auf Fehler. Verwenden Sie alternativ den LoaderManager mit einem CursorLoader.

Noch können Sie etwas tun:

CursorAdapter myAdapter = new CursorAdapter(myContext, myCursor, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER) { 
    ...