lordzwieback
Erfahrenes Mitglied
- 210
Guten Morgen Forum,
ich habe ein Problemchen beim Durchblättern der Datensätze in meiner kleinen aber feinen SQLite-Datenbank.
Ich beziehe mich jetzt in diesem Thread bzw. in den Codeschnipseln mal nur auf den "lastRecord", damit es nicht zu unübersichtlich wird. Und ja, ich weiß, eigentlich sollte es verständlicherweise nicht lastRecord, sonder previousRecord (oder prevRecord, wie auch immer) heißen, wird bei Gelegenheit noch umgebaut.
Folgende Funktionen benutze ich dafür...
lastRecord Funktion der DB Klasse
Jetzt einmal der Sprung in meine Activity. Hier habe ich eine kleine Funktion, die mir beim Aufruf den aktuell dargestellten Datensatz in ein Strukturobjekt lädt:
Und zum Schluss die OnClick Methode des "zurück"-Buttons:
Die Funktionen scheinen alle zu laufen, aber ich bekomme immer eine leere Struktur zurück. In der DB befinden sich momentan drei Testdatensätze. Übersehe ich (mal wieder) etwas Offensichtliches?
ich habe ein Problemchen beim Durchblättern der Datensätze in meiner kleinen aber feinen SQLite-Datenbank.
Ich beziehe mich jetzt in diesem Thread bzw. in den Codeschnipseln mal nur auf den "lastRecord", damit es nicht zu unübersichtlich wird. Und ja, ich weiß, eigentlich sollte es verständlicherweise nicht lastRecord, sonder previousRecord (oder prevRecord, wie auch immer) heißen, wird bei Gelegenheit noch umgebaut.
Folgende Funktionen benutze ich dafür...
lastRecord Funktion der DB Klasse
Code:
public Recipe_Struct lastRecord(Recipe_Struct struct) {
Recipe_Struct lastStruct = new Recipe_Struct();
File appDir = mContext.getExternalFilesDir(null);
SQLiteDatabase database = new RecipeDB.SDBSQLiteHelper(mContext,appDir.toString()+ "/app_recipe.db").getWritableDatabase();
Cursor c = database.rawQuery("SELECT * FROM recipe " +
"WHERE name = '" + struct.name + "' " +
"AND reqtime = '" + struct.reqtime + "' " +
"AND ingredients = '" + struct.ingredients + "'", null);
if (c != null) {
if (c.moveToPrevious()) {
lastStruct.name = c.getString(c.getColumnIndex("name"));
lastStruct.reqtime = c.getInt(c.getColumnIndex("reqtime"));
lastStruct.ingredients = c.getString(c.getColumnIndex("ingredients"));
}
}
database.close();
return lastStruct;
}
Jetzt einmal der Sprung in meine Activity. Hier habe ich eine kleine Funktion, die mir beim Aufruf den aktuell dargestellten Datensatz in ein Strukturobjekt lädt:
Code:
private Recipe_Struct getDisplayedRecord() {
Recipe_Struct struct = new Recipe_Struct();
struct.name = name.getText().toString();
struct.reqtime = Integer.parseInt(reqtime.getText().toString());
struct.ingredients = ingredients.getText().toString();
return struct;
}
Und zum Schluss die OnClick Methode des "zurück"-Buttons:
Code:
lastRecord.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Recipe_Struct struct = db.lastRecord(getDisplayedRecord());
name.setText(struct.name);
reqtime.setText(String.valueOf(struct.reqtime));
ingredients.setText(struct.ingredients);
}
});
Die Funktionen scheinen alle zu laufen, aber ich bekomme immer eine leere Struktur zurück. In der DB befinden sich momentan drei Testdatensätze. Übersehe ich (mal wieder) etwas Offensichtliches?