Fehler in AlertDialog an User melden.

M

muck

Ambitioniertes Mitglied
7
Ich rufe aus dem Optionsmenü einen CreateDialog() auf:
Code:
...
CreateDialog();
alert.show();
...
In CreateDialog() erstelle ich einen AlertDialog, der dann anschleißend mit alert.show(); angezeigt wird.
Code:
public void CreateDialog () {
  final AlertDialog.Builder builder = new AlertDialog.Builder(this);
  final EditText inputBox = new EditText(this);
  builder.setTitle(getString(R.string.txt_addList));
  builder.setView(inputBox);
 
  builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int buttonID) {
    [COLOR=red]try {[/COLOR]
[COLOR=red] dbConn.execSQL("INSERT INTO shoppinglists (name) VALUES ('" + inputBox.getText().toString().trim() + "')");[/COLOR]
[COLOR=red] listView = showShoppingLists();[/COLOR]
[COLOR=red]} [/COLOR]
[COLOR=red]catch (SQLException e) {[/COLOR]
[COLOR=red]    String test = e.getMessage();[/COLOR]
[COLOR=red]    System.out.println(test);[/COLOR]
[COLOR=red]}[/COLOR]
   }
  });
 
  builder.setNegativeButton(getString(R.string.txt_cancelButton), new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int buttonID) {
    dialog.cancel();
   }
  });
 
  alert = builder.create();
}

Nun zu meinem Problem: (rote Markiert)
Wenn das INSERT in die Datenbank fehlschlägt, würde ich das dem User gerne mitteilen. Ich habe nur im Moment überhaupt keine Idee wie ich das machen soll.

Über einen Tipp zum Lösungsansatz wäre ich dankbar.

Gruß
 
Vielleicht mit einem Toast?
 
Nein, das geht innerhalb des Dialoges nicht.
 
warum soll das nicht gehen?
 
Du kannst natürlich auch unterhalb des EditTextes noch ein TextFeld einbauen, in dem du Feedback reinschreibst..
 
Du kannst durchaus innerhalb des Dialogs einen Alert anzeigen. Aber: Wenn der User den bestätigt, z.B. mit OK, dann werden automatisch beide Dialoge geschlossen.
 
@swordi
Wenn ich im catch einen Toast aufrufen will kommt ne FM.

@klausa2
Daran hatte ich schonmal gedacht. Wenn allerdings beide Dialoge geschlossen werden, kann ich auch im catch ein flag setzen, dann geht der Dialog zu, ich werte das flag aus, bring ne Meldung und rufe den Dialog mit der vorherigen Eingabe wieder auf.

oder
@Fr4gg0r
Mal testen ob das "auffällig" genug ist. Darauf bin ich noch gar nicht gekommen :D

Dankschöön an alle.
 
Du kannst dir doch auch deinen eigenen Fehler-Dialog bauen:

Code:
import android.app.Activity;
import android.app.AlertDialog;

public class ErrorDialog {

  public ErrorDialog(Activity owner, String message, DialogListener listener) {
    AlertDialog dialog = new AlertDialog.Builder(owner).create();
    dialog.setIcon(R.drawable.error);
    dialog.setTitle(R.string.error);
    dialog.setMessage(message);

    dialog.setButton(AlertDialog.BUTTON_POSITIVE, owner.getString(R.string.ok), listener);

    dialog.show();

  }

}
Damit habe ich so meine Standard-Dialoge geschaffen.
 
So, hab ne Lösung gefunden. Ist zwar ein bisschen aufwändiger aber man hat alles im "Griff" :thumbsup:

Hab ein neues Activity erstellt und mit
android:theme="@android:style/Theme.Dialog">
sieht es dem Dialog schonmal sehr ähnlich.
Inputbox, Textfeld und zwei Buttons rein, Code drum rum, noch ein bischen aufhüpschen und fertig.
 

Ähnliche Themen

J
  • Juleru
Antworten
8
Aufrufe
497
Juleru
J
D
Antworten
23
Aufrufe
2.552
Data2006
D
FabianDev
Antworten
5
Aufrufe
559
swa00
swa00
Zurück
Oben Unten