Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 重写默认backkeys函数时出现问题_Android - Fatal编程技术网

Android 重写默认backkeys函数时出现问题

Android 重写默认backkeys函数时出现问题,android,Android,在我的应用程序中,我覆盖了android的backkey默认功能(通过覆盖onkeydown)。它可以正常工作。但当微调器组件默认选择元素窗口和虚拟键盘(在android 1.5中)进入屏幕时,默认backkey功能因我的覆盖而崩溃 有没有办法解决这个问题?或者virtualkeypadwindow和微调器组件窗口的名称是什么?谢谢 问题是,当屏幕上有一个实际上是完全独立的活动时,对话框帮助程序会对您隐藏它。只有两种方法可以解决这个问题(取决于您试图做什么) 您可以扩展正在使用的对话框类型,并在

在我的应用程序中,我覆盖了android的backkey默认功能(通过覆盖onkeydown)。它可以正常工作。但当微调器组件默认选择元素窗口和虚拟键盘(在android 1.5中)进入屏幕时,默认backkey功能因我的覆盖而崩溃


有没有办法解决这个问题?或者virtualkeypadwindow和微调器组件窗口的名称是什么?谢谢

问题是,当屏幕上有一个实际上是完全独立的活动时,对话框帮助程序会对您隐藏它。只有两种方法可以解决这个问题(取决于您试图做什么)

您可以扩展正在使用的对话框类型,并在派生类中重写onKeyPress,然后使用它代替系统的默认对话框

public class MyDialog extends ProgressDialog {
    /*  ...  */

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // handle the keypress
            return true;
        }
        return false;
    }
}
您可以使用Cancelable选项启动对话框,然后捕获cancel操作。。。比如:

public class MyActivity implements OnCancelListener {
    /*  ...  */

    public void startDialog() {
        ProgressDialog pd = ProgressDialog.show(
            MyActivity.this,    // Context
            "Progress Title",   // title for dialog
            "Progress Message", // message for dialog
            true,               // indeterminate?
            true,               // cancellable?
            this                // onCancelListener()
        );
    }

    @Override
    public void onCancel(DialogInterface dialog) {
        // the user canceled out of the load dialog (hit the 'back' button)... do something here
    }
}

指导我完成我的问题…1.进度对话框2.虚拟键盘3.微调器组件的/AlertDialog我们如何知道此类对话框是以尖叫的方式打开的,是否有任何可能的方式以编程方式执行这些操作?