lordzwieback
Erfahrenes Mitglied
- 210
Moin miteinander,
ich habe ein kleines (Gedanken)Problem mit einer Abfrage. Folgendes Szenario: Form mit Eingaben (TextEdits), die der User tätigen kann. Ebenso kann man über zwei Buttons vor und zurück springen durch die Datensätze.
Nun wollte ich einen Dialog anzeigen, wenn ungespeicherte Daten vorhanden sind, aber schon jemand auf den nächsten Datensatz springen will. Dieser Dialog funktioniert auch. Nur habe ich das Problem, dass während der Dialog angezeigt wird schon die nachfolgenden Zeilen Code ausgeführt werden.
Um das zu verhindern, wollte ich den Dialog in ein Async Task stecken, da ich hier davon ausgehen kann, dass der Task zuerst komplett ausgeführt wird, bevor weiter Code abgearbeitet wird. Jetzt habe ich aber das Problem, dass ich meine TEMP-Werte mit den aktuellen Werten aus den EditTexts vergleichen muss, um festzustellen, ob ungespeicherte Daten vorhanden sind. Ich kann aber aus dem AsyncTask doInBackground keine UI-Elemente ansprechen... kenn ich mich jetzt nicht gut genug mit den Asyncs aus oder hat jemand vielleicht einen Tipp für mich?
Die Werte im OnPreExecute setzen und dem doInBackground bzw. OnPostExecute weitergeben hat nicht funktioniert - vielleicht habe ich auch etwas falsch gemacht.
Hier mal noch der Dialog:
ich habe ein kleines (Gedanken)Problem mit einer Abfrage. Folgendes Szenario: Form mit Eingaben (TextEdits), die der User tätigen kann. Ebenso kann man über zwei Buttons vor und zurück springen durch die Datensätze.
Nun wollte ich einen Dialog anzeigen, wenn ungespeicherte Daten vorhanden sind, aber schon jemand auf den nächsten Datensatz springen will. Dieser Dialog funktioniert auch. Nur habe ich das Problem, dass während der Dialog angezeigt wird schon die nachfolgenden Zeilen Code ausgeführt werden.
Um das zu verhindern, wollte ich den Dialog in ein Async Task stecken, da ich hier davon ausgehen kann, dass der Task zuerst komplett ausgeführt wird, bevor weiter Code abgearbeitet wird. Jetzt habe ich aber das Problem, dass ich meine TEMP-Werte mit den aktuellen Werten aus den EditTexts vergleichen muss, um festzustellen, ob ungespeicherte Daten vorhanden sind. Ich kann aber aus dem AsyncTask doInBackground keine UI-Elemente ansprechen... kenn ich mich jetzt nicht gut genug mit den Asyncs aus oder hat jemand vielleicht einen Tipp für mich?
Die Werte im OnPreExecute setzen und dem doInBackground bzw. OnPostExecute weitergeben hat nicht funktioniert - vielleicht habe ich auch etwas falsch gemacht.
Hier mal noch der Dialog:
Code:
AlertDialog saveAlert = new AlertDialog.Builder(MainActivity.this).create();
saveAlert.setTitle("Ungespeicherte Eingaben");
saveAlert.setMessage("Es sind ungespeicherte Änderungen am aktuellen Datensatz vorhanden.\n\n Möchten Sie speichern?");
saveAlert.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
save();
}
});
saveAlert.setButton(DialogInterface.BUTTON_NEGATIVE, "Abbrechen", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
return;
}
});
saveAlert.show();