解除自定义对话框时如何触发事件?

时间:2015-02-02 06:37:45

标签: android dialog

我正在创建自己的自定义对话框。我希望在自定义对话框被解除但无法执行时触发事件。

注意: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);

    }

3 个答案:

答案 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`
    {}