我正在创建自己的自定义对话框。我希望在自定义对话框被解除但无法执行时触发事件。
注意:Ondismiss()没有选项 - 所以我可以覆盖它。 这是我的代码:
Dialog pdialog=new Dialog(MainActivity.this);
pdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
pdialog.setContentView(R.layout.cust);
ImageView cancel=(ImageView) pdialog.findViewById(R.id.close);
TextView txtheader=(TextView) pdialog.findViewById(R.id.txttheader);
txtheader.setText("Accent Report");
pdialog.show();
pdialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
System.out.println("hello world@@@@@");// this line is not getting called.
}
});
pdialog.setCanceledOnTouchOutside(true);
pdialog.setCancelable(true);
}
答案 0 :(得分:0)
在自定义对话框的类定义中,覆盖dismiss()函数并在其中执行操作。如下所示:
@Override
public void dismiss() {
someListener.onActionHappened(); //your action
super.dismiss();
}
尝试覆盖取消方法。我没有测试过这个。
@Override
public void cancel() {
someListener.onActionHappened(); //your action
super.cancel();
}
答案 1 :(得分:0)
简单而甜蜜..您可以在OnClickListener中添加操作...它会关闭您的对话框并执行操作
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
pdialog.dismiss();
// Your Action Here
}
});
答案 2 :(得分:0)
你正在采取什么行动来解雇你的自定义对话框, 按下自定义对话框的取消按钮或按下设备的后退按钮? 你可以尝试下面的代码 其中View是您的自定义对话框视图
View view=View.inflate(context, R.layout.activity_account_history_screen, null);
if(view.isShown())
{
//do some task
}
else`enter code here`
{}