10 Stimmen

Wie man ein Ereignis erfasst, wenn ein Benutzer einen Warnhinweis durch Drücken der Zurück-Taste in Android ablehnt.

Ich muss ein Ereignis einfangen, wenn der Benutzer die Zurück-Taste drückt und versucht, den Dialog zu schließen. Ich habe einen Code wie diesen

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create();
    alertDialog.setTitle("Achtung");
    alertDialog.setMessage("Warnung");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
        finish();
    } });
    alertDialog.show();
}

Jetzt habe ich dem Benutzer eine Option gegeben, aber nehmen wir an, er drückt die Zurück-Taste, dann muss ich eine andere Aktion ausführen. Wie mache ich das?

26voto

Sniper Punkte 2392

Dies wird Ihnen helfen

alertDialog.setOnCancelListener(new OnCancelListener() {
    public void onCancel(DialogInterface dialog) {
        // Ihr Code ...
    }
});

2voto

Es gibt auch

alertDialog.setOnDismissListener(dialog -> { /* Code steht hier */ });

das anscheinend speziell das Abbrechen-Ereignis behandelt.

1voto

Rajeel Punkte 384

Sie können das Zurück-Tastenereignis erfassen, wenn Ihr Alarm erscheint, setzen Sie einige Boolesche auf true

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create();
    alertDialog.setTitle("Vorsicht");
    alertDialog.setMessage("Alarm");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
        finish();
    } });
  isAlertShowing = true;   // auf true für Alarm setzen
    alertDialog.show();
}

dann im Ereignis

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {
  if (keyCode == KeyEvent.KEYCODE_BACK) 
        {
            if(isAlertShowing)
            {
               // führen Sie Ihre Aufgabe hier aus
             }

        }

        return super.onKeyDown(keyCode, event);
 }

0voto

Altaaf Punkte 527

Erstellen Sie eine Schaltfläche zur Verwaltung des Zurück-Tasten-Ereignisses. Jetzt versuchen Sie innerhalb des onClick-Ereignisses den untenstehenden Code bereitzustellen.

back_key.setOnClickListener(new OnClickListener() 
{

        public void onClick(View v) 
        {
             // Ihr Tracking-Code
        }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X