在我的应用程序中,我覆盖android的反键默认函数(通过Override onkeydown).its工作正常。但是当微调器组件默认选择元素窗口和虚拟键盘时(在Android 1.5中)进入屏幕默认的后退键功能由于我的压倒性而崩溃了。
有什么方法可以解决这个问题吗?或者virtualkeypadwindow和spinner组件窗口的名称是什么?谢谢。 。 。
答案 0 :(得分:1)
问题是当屏幕上有一个Dialog实际上是一个完全独立的Activity时,对话框助手只是将它隐藏起来。只有两种方法可以解决这个问题(取决于你想要做什么)。
您可以扩展您正在使用的对话框类型,并覆盖您派生类中的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;
}
}
您可以使用可取消选项启动Dialogs然后捕获取消操作...类似于:
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
}
}