AlertDialog entlassen funktioniert nicht

Habe ich Folgendes AlertDialog:

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
dialogBuilder.setTitle(R.string.title);
dialogBuilder.setMessage(mContext.getString(R.string.message));
dialogBuilder.setPositiveButton(R.string.positive, new MyOnClickListener());
dialogBuilder.setNegativeButton(R.string.negative, new MyOnClickListener());
dialogBuilder.show();

mit diesem ClickListener

public static class MyOnClickListener implements DialogInterface.OnClickListener{
    @Override
    public void onClick(DialogInterface dialog, int which) {
      dialog.dismiss();
    }
  }

Ich würde erwarten, dass der dialog geschlossen werden, wenn Sie klicken auf eine der Schaltflächen, aber der dialog bleibt geöffnet, statt.

Ich gedebuggt die onClick-Methode und die Zeile

dialog.dismiss() 

ausgeführt wird, aber nichts passiert.

Wo mache ich falsch oder wie kann ich dieses Problem beheben?

  • Wo ist deine Klasse Umsetzung? In der gleichen Datei?
  • Ja, Sie sind beide in der gleichen POJO.
  • Statt der Erstellung der Klasse, versuchen Schnittstelle und implementieren es.
  • der code ist klein, ich empfehle, dass u fügen Sie beide clicklistener individuell...
  • Es implementiert DialogInterface.OnClickListener
  • Ich bin mit dem OnClickListener in mehr Orten, nur ein test hier.
  • Vielleicht AlertDialogBuilder sollte AlertDialog.Generator
  • Bietet Ihre app erreichen onClick auf MyOnClickListener? Hinzufügen es einen Haltepunkt und debug-vielleicht etwas zeigen.
  • warum erstellen Sie ein Objekt der statischen Klasse??\
  • Hat Ihr MyOnClickListerners onClick () - Methode überhaupt aufgerufen wird?
  • Weil innere Klassen können zu Speicherverlusten, wenn Sie eine Referenz auf die umschließende Klasse. Dies ist besonders riskant bei Rückrufen wie für die Zuhörer.
  • versuchen Sie, diese als Ihre erste Linie AlertDialog alertDialog = new AlertDialog.Generator( AlertDialogActivity.diese).create();
  • Könnte es sein, dass Sie zeigen >1 Dialoge und nach dem drücken der-positiven oder negativen-Taste, wird der aktuelle dialog wird in der Tat entlassen, aber es gibt noch eine identische dahinter, dass sich zeigt? Wo tun Sie das Dialogfeld erstellen, die in Ihrer Tätigkeit? Ist es irgendwo platziert, wo es sein könnte, mehr als 1 mal?
  • Dann setPositiveButton funktioniert nicht mehr

InformationsquelleAutor barq | 2016-02-22
Schreibe einen Kommentar