我正在尝试创建一个自定义对话框,以在此对话框中显示视图。这是Builder代码:
//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(new 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();
所以,我想在btDialogSimple的onClick中关闭对话框。我怎么能这样做?我不知道如何从onclicklistener中调用dismiss方法。
我的按钮有自定义布局,所以我不想制作一个builder.setPositiveButton。
有什么想法吗?
答案 0 :(得分:17)
您必须将AlertDialog保存到父类属性,然后使用以下内容:
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();
}
答案 1 :(得分:7)
我认为更好的方法是致电
dismissDialog(DIALOG_ID);
不会使AlertDialog成为类属性而无法从onCreateDialog()返回Dialog的目的吗?
答案 2 :(得分:0)
我正在使用
public Dialog dialog;
buton_sil.setOnClickListener(new View.OnClickListener() {
@ Override
public void onClick(View v) {
DialogClose();
}
}):
public void DialogClose() {
dialog.dismiss();
}
答案 3 :(得分:0)
使用AlertDialog
实例,例如mAlertDialog
作为全局变量。并在mAlertDialog.dismiss();
onClick()