I'm trying to make a custom dialog to show a view in this dialog. This is the Builder code:
//Getting the layout
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog_simple,
(ViewGroup) findViewById(R.id.rlDialogSimple));
//Change Text and on click
TextView tvDialogSimple = (TextView) layout.findViewById(R.id.tvDialogSimple);
tvDialogSimple.setText(R.string.avisoComprobar);
Button btDialogSimple = (Button) layout.findViewById(R.id.btDialogSimple);
btDialogSimple.setOnClickListener(ne开发者_StackOverflow中文版w OnClickListener() {
public void onClick(View v) {
//Do some stuff
//Here i want to close the dialog
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(AcPanelEditor.this);
builder.setView(layout);
AlertDialog alert = builder.create();
alert.show();
So, i want to dismiss the dialog in the onClick of btDialogSimple. How i can do it? I don't know how to call the dismiss method from inside a onclicklistener.
My buttons have a custom layout, so i don't want to make a builder.setPositiveButton.
Any ideas?
You have to save the AlertDialog to your parent class property, then use something like this:
class parentClass ........ {
private AlertDialog alert=null;
........
public void onClick(View v) {
//Do some stuff
//Here i want to close the dialog
if (parentClass.this.alert!=null)
parentClass.this.alert.dismiss();
}
........
this.alert = builder.create();
this.alert.show();
}
I think a better way may be to call
dismissDialog(DIALOG_ID);
Wouldn't making the AlertDialog a class property defeat the purpose of returning a Dialog from the onCreateDialog()?
ı am using
public Dialog dialog;
buton_sil.setOnClickListener(new View.OnClickListener() {
@ Override
public void onClick(View v) {
DialogClose();
}
}):
public void DialogClose() {
dialog.dismiss();
}
Use AlertDialog
instance e.g. mAlertDialog
as a global variable. And call mAlertDialog.dismiss();
inside onClick()
精彩评论