Guten Morgen
habe wieder einmal ein Problem. Dieses mal mit der SQL Datenbank.
Muss zugeben das ich da sehr wenig Erfahrung damit habe.
Ich habe mir eine Test Datenbank aufgebaut mit / Add, Delete, Update , Show. Das hab ich mir mehr oder weniger aus Youtube zusammengebastelt.
Funktioniert aber recht gut und hab ich eigentlich auch hoffentlich verstanden.
Nun bin ich dabei mir einen Forward und Backward Knopf mit einzubauen. Also immer 1 hoch oder 1 runter zählen und Anzeigen.
Die Forward Taste funktioniert super (position wird immer hochgezählt) aber wenn ich den Backward Knopf drücke fängt er bei 0 an anstatt bei der letzten Forward Position z.B. 4.
Ich könnte natürlich die position Variable so definieren dass sie "global" gilt, das will ich aber erst mal nicht.
Möchte verstehen warum es nicht geht.
Ich dachte dass beim Hochzählen die Position in der Datenbank hochgezählt wird (cursor.moveToPosition) und nicht nur die Variable.
Hier mal der Code von DataBaseHelper.java
.....
public Cursor forwardData () {
//
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return data;
}
public Cursor backwardData () {
//
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return data;
}
Alles anzeigen
und hier der von der MainActivity
...........
public void ForwardData() {
btnForward.setOnClickListener(new View.OnClickListener() {
int position = etID.getText().toString().length();
@Override
public void onClick(View v) {
Cursor cursor = butterflyDB.forwardData();
// int position = etID.getText().toString().length();
position++;
if (position < cursor.getCount()) {
cursor.moveToPosition(position);
// Toast.makeText(MainActivity.this, "Position " + position, Toast.LENGTH_LONG).show();
//Toast.makeText(MainActivity.this, "Cursor Count " + cursor.getCount(), Toast.LENGTH_LONG).show();
etName1.setText(cursor.getString(1), TextView.BufferType.EDITABLE);
etName2.setText(cursor.getString(2), TextView.BufferType.EDITABLE);
etID.setText(cursor.getString(0), TextView.BufferType.EDITABLE);
}
}
});
}
public void BackwardData(){
btnBackward.setOnClickListener(new View.OnClickListener() {
int position = etID.getText().toString().length();
@Override
public void onClick(View v) {
Cursor data = butterflyDB.backwardData();
//Toast.makeText(MainActivity.this, "Position " + position, Toast.LENGTH_LONG).show();
// int position = etID.getText().toString().length();
position--;
Toast.makeText(MainActivity.this, "Position " + position, Toast.LENGTH_LONG).show();
if (position>0){
data.moveToPosition(position);
Toast.makeText(MainActivity.this, "Position " + position, Toast.LENGTH_LONG).show();
// Toast.makeText(MainActivity.this, "Cursor Count " + cursor.getCount(), Toast.LENGTH_LONG).show();
etID.setText(data.getString(0), TextView.BufferType.EDITABLE);
etName1.setText(data.getString(1), TextView.BufferType.EDITABLE);
etName2.setText(data.getString(2), TextView.BufferType.EDITABLE);
}
}
});
}
Alles anzeigen
Danke schon mal für eure Unterstützung