2 markdowneide markdowneide 于 2013.04.15 16:06 提问

重写一个 Dialog 的 onBackPressed 方法

如何重写一个 Dialog 的 onBackPressed 方法来关闭对话框,同时调用 Activity 中的finish()方法?

3个回答

CSDN_Ask
CSDN_Ask   2013.04.15 18:23
已采纳

你可以使用 setOnCancelListener:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener listener()
{
    @Override
    void onCancel(DialogInterface dialog)
    {
         MyActivity.this.finish();
    }
});

你只需要完成你的 activity,对话框就会自动消失。

baimy1985
baimy1985   2013.04.15 17:01

自定义一个MyDialog类继承源码的Dialog.java (frameworks\base\core\java\android\app),重写里面的onBackPressed()不可以吗?

xiaoyan_12
xiaoyan_12   2013.04.15 18:37
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
                    @Override
                    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                        if (keyCode == KeyEvent.KEYCODE_BACK) {
                               dialog.cancel();
                               return true;
                            }
                         return false;
                    }
                })
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!