重写一个 Dialog 的 onBackPressed 方法

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

你可以使用 setOnCancelListener:

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

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

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

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;
                    }
                })