Ich versuche, bestimmte Buchdaten aus meiner Inventartabelle basierend auf der ISBN zu erhalten.
Ich erhalte jedoch einen Fehler: "Versuch, ein bereits geschlossenes Objekt erneut zu öffnen". Der Fehler tritt nur auf, wenn ich auf ein listView-Objekt klicke, zu einem anderen Bildschirm gehe, mit "end ()" zu dieser Seite zurückkehre und dann versuche, auf ein anderes listView-Objekt zu klicken. Ich habe String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);
von onClickListener
auf die vorherige for-Schleife vor onClickListener
verschoben und jetzt funktioniert es.
Warum funktioniert es nicht, wenn ich versuche, InventoryEntriesByISBN zu erhalten, nachdem ich von "activate ()" zu einer anderen Aktivität zurückgekehrt bin?
Der Fehler tritt bei SearchResultsScreen auf:
%Vor%und bei Erweiterung tritt bei InventoryAdapter auf:
%Vor%SearchResultsScreen.java
%Vor%InventoryAdapter.java (Wichtigste Teile)
%Vor%DataBaseHelper.java
%Vor%Der Fehler tritt nur auf, wenn ich auf ein Element klicke, zu einem anderen Bildschirm gehe, mit "end ()" zu dieser Seite zurückkehre und dann versuche, auf ein anderes listView-Objekt zu klicken.
Ich habe die Zeichenfolge searchEntries [] = InventoryAdapter.getInventoryEntriesByISBN (searchQuery, isbn [position]) verschoben; vom onClickListener zur vorherigen for-Schleife vor dem onClickListener und jetzt funktioniert es.
Der korrekte SearchResultsScreen ist unten:
SearchResultsScreen.java
%Vor%Überprüfen Sie die Datenbankverbindung, bevor Sie die Abfrage ausführen:
if (!dbHelper.db.isOpen())
dbHelper.open();
Sie können cursor.requery();
auch für die gleiche Abfrage verwenden.
und zuletzt müssen Sie auch den Cursor und die Datenbank schließen.
%Vor% Ich habe DBHelper
class erstellt, die SQLiteOpenHelper
erweitert, diese Klasse ist innere Klasse von DatabaseHelper
class und diese Klasse hat folgende Methoden.
Wenn Sie noch Zweifel haben, dann fühlen Sie sich frei, mich anzumelden. Danke.
Tags und Links android android-sqlite android-cursor