Freut mich
nun noch ein paar Anmerkungen/Erinnerungen:
1. Wenn du Daten aus der Datenbank holst und diese Anzeigst, ist das nie eine Referenz sondern eine Kopie der Daten. Das heißt wenn du was änderst, änderst du nur die Kopie. Das Gleiche gilt, wenn du Daten aus Textfeldern in Variablen speicherst, sind das auch nur Kopien. Müssen also vor bestimmten Aktionen immer aktuell gehalten werden (Wie hier in diesem Fall direkt vor dem Update)
2. Es gibt da ein Prinzip, das nennt sich DRY = "Dont Repeat Yourself". Versuch möglichst selten oder nie deinen Code irgendwo doppelt zu schreiben.
Hier in diesem Fall meine ich den Aufbau deines Dialogs. Ich würde lieber eine Methode dafür erstellen, die einen Boolean Parameter erwartet. z.B.
und wenn du den Dialog für einen neuen Eintrag brauchst machst du dialogAufbau(true) und fürs Bearbeiten dialogAufbau(false)
mit diesem Wert kannst du dann innerhalb der Methode dialogAufbau deinen Dialog aufbauen und dementsprechend immer eine Abfrage rein baun
public void dialogAufbau(Boolean neuerEintrag) {
// ....
if (neuerEintrag == false)
chk_bx.setVisibility(View.VISIBLE);
// ...
// View Aufbauen
// ...
new AlertDialog.Builder(LvCursorAdapter.this)
.setTitle(R.string.bearbeiten)
.setView(EditView)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// ...
// Werte in Variablen schreiben
// ...
// ...
if (neuerEintrag == false) {
dbHelper.updateEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, idCode);
} else {
dbHelper.createEintraege(new_plus_minus, new_datum, new_betrag, new_notiz, null);
// übrigens brauchst du für einen neuen Eintrag keine ID übergeben, deshalb:
dbHelper.createEintraege(new_plus_minus, new_datum, new_betrag, new_notiz);
// und dementsprechend den Parameter in der Klasse GeldDbAdapter anpassen ;)
}
}
Alles anzeigen
Achtung, frei aus der Hand geschriebener Code!... muss natürlich angepasst werden.
3. Klassen sollte man richtig benennen. Die Klassen enden hier beide mit dem ..Adapter. Das solltest du nur machen, wenn die Klasse wirklich ein Adapter ist. Hier ist eine Klasse ne ListAktivity und die andere ein Datenbankkonstrukt. Also eines könnte man LvEintraege nennen und das andere einfach GeldDB
Und damit komm ich zu deiner Frage. Es ist möglich, dafür musst du dir aber (meines Wissens) einen Eigenen Adapter bauen. Und eine bestimmte Methode Überschreiben, welche die Daten in die Views schreibt, dort kannst du dann die Views auch bearbeiten.
Das ist ein etwas anderes, nicht seehr einfaches Thema für den Anfang. Solltest dafür lieber ein neues Thema eröffnen, bzw. kurze Tutorials suchen, wie man eigene Adapter baut. (Du benutzt den SimpleCursorAdapter, der ist von Android schon fertig gegeben und nicht zu verändern)
Ein bisschen viel Text, sorry