My activity opens a dialog. When it closes I need the function ReloadTable()
to be executed. So I am trying to use setOnDismissListener
but its not get
public class MyActivity extends Activity implements DialogInterface.OnCancelListener{
@Override
public void onCreate(Bundle state) {
.....
alertDialog.setOnCancelListener(this);
alertDialog.show();
}
@Override
public void onCancel(DialogInterface dialog) {
dialog.dismiss();
.....
}
}
You have to setOnCancelListener to the AlertDialog.Builder:
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);
alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
dialogmenu = false;
}
})
I found the real problem.
You should call .show in the dialog, not in the builder.
Try it :)
Use following code
final AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this);
final View dailogView = LayoutInflater.from(MyActivity.this).inflate(R.layout.dialog_layout, null);
builder.setView(dailogView);
final AlertDialog dialog=builder.create();
dialog.show();
DismissListener
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
// your code after dissmiss dialog
}
});
OK...I figured it out myself.
I had to implement DialogInterface.OnCancelListener
and add the onCancel()
method. It worked!
In this case you should use alertDialog.setOnCancelListener(listener)
,and alertDialog.setOnDismissListener
works with dismissDialog(id)
.