在我的活动中,软键盘或多或少应该是打开的。因此,当用户按下后退按钮时,活动应该像正常情况一样结束。但是,默认的android行为是在键盘打开时关闭它。这使得用户必须单击两次才能退出活动。如何重写此行为,以便在按下“后退”按钮(即使软键盘已打开)时活动始终结束?有什么简单的方法吗?
我确信这是一个常见的问题,但我没有发现这个直接的问题。

最佳答案

试试这个。

mEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            finish();
            return false;
        }
});

您可以隐藏键盘并完成活动。
如果你使用对话框,你可以这样做。
 mDialog.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                if (isShowDialog) {
                    isShowDialog = false;
                    mDialog.dismiss();
                    context.finish();
                }
            }
            return false;
        }
});

注意:它也可以在对话框中使用。关闭对话框并执行某些操作。您还可以使用vkeyCodeevent。而且大多数视图都可以使用它。

07-28 02:30
查看更多