Ich versuche, mich an die Verwendung von benutzerdefinierten Inhaltsanbietern zu gewöhnen. Es ist mir gelungen, eine sehr einfache Anwendung zu schreiben, die auf Knopfdruck mit Hilfe eines benutzerdefinierten Inhaltsanbieters einen String zu einer SQLite-Datenbank hinzufügt. Diese Datenbankeinträge werden dann in einer ListView in derselben Aktivität angezeigt.Beschränken Sie die Anzahl der Elemente in SimpleCursorAdapter, wenn Sie benutzerdefinierten Inhaltsanbieter verwenden
Ich versuche, die Anzahl der Elemente in der ListView auf 5 zu begrenzen, aber aufgrund meiner mangelnden Erfahrung habe ich keine Ahnung, wie es weiter geht.
Dies ist, was ich bin mit dem Listview-
private void fillData() {
String[] from = new String[]{commentsTable.COLUMN_COMMENT, commentsTable.COLUMN_ID};
int[] to = new int[]{android.R.id.text1, android.R.id.text2};
getLoaderManager().initLoader(0, null, this);
adapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, null, from, to, 0);
setListAdapter(adapter);
}
Ich folgte dieses Tutorial http://www.vogella.com/tutorials/AndroidSQLite/article.html#tutorial-sqlite-custom-contentprovider-and-loader zu schreiben, eine App ähnlich den App im Tutorial zu füllen.
Ich habe versucht, ein Cursor
statt null
verwenden, aber ich bin immer einen java.lang.NullPointerException
Fehler wegen der Methode .getWritableDatabase()
.
Welche Klasse sollte ich hinzufügen, diese auch? Mein benutzerdefinierter Inhaltsanbieter? – somethingRandom
@somethingRandom Ich habe einige Erweiterungen hinzugefügt. Hoffe das hilft. –
Scheint nicht zu funktionieren, die App stürzt ab. Ich bekam den Fehler "java.lang.IllegalStateException: dies sollte nur aufgerufen werden, wenn der Cursor gültig ist", wenn ich die App auf dem vorherigen Code ausgeführt habe. Also habe ich die App deinstalliert und neu gebaut, aber jetzt bekomme ich den Fehler "java.lang.IllegalStateException: konnte den Cursor nicht auf Position 0 bewegen". – somethingRandom