当硬件键盘打开时,我的Android应用程序会关闭。

3
在我开发的大多数应用程序中,我只是让Android处理我的配置更改,这很好用,但现在在我正在开发的最新应用程序中,我所有的视图都设置为横向。当用户在任何带有硬键盘的硬件上打开键盘时,应用程序会自动关闭,没有强制关闭。它只是简单地关闭。我知道你可以使用保存状态并监听键盘打开事件来执行各种操作,但此时我所需要做的就是在键盘打开时仅保持应用程序运行而不进行其他特殊操作。视图已在清单中设置为横向,那么我该如何在键盘打开时简单地保持应用程序不关闭呢?

1
当/如果您捕获到打开键盘事件时,您目前在做什么?如果是的话,您能发布那段代码吗? - L7ColWinters
目前我没有做任何事情来捕获键盘事件。我在某个论坛上看到,如果你只是在代码中放置@ Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); },它会保持你的onConfigchanged为空,但这对我没有起作用。 - James andresakis
1
如果(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){ // 处理键盘滑出事件 } else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { // 处理键盘滑入事件 } - L7ColWinters
是的,但我必须把所有在我的onCreate或onResume中的东西放在{//handle change}里面吗?这就是我不知道的。 - James andresakis
1
https://dev59.com/Yb4vzogBFxS5KdRjJgS0 - L7ColWinters
嘿,谢谢你的帮助兄弟 :) 我只是按照下面发布的内容去做了。 - James andresakis
1个回答

3
在您的清单文件中的<activity>标签中,尝试添加以下内容:
android:configChanges="keyboardHidden"

这将会在您的活动中调用 onConfigurationChanged 方法(如果您没有对键盘状态变化进行任何更改,则可以忽略它),并且不会在键盘状态变化时重新启动。
您可以在这里了解有关运行时配置更改的信息: http://developer.android.com/guide/topics/resources/runtime-changes.html 以及有关活动标记属性的信息: http://developer.android.com/guide/topics/manifest/activity-element.html#config

嘿,感谢你的帮助......我已经阅读了第一个链接大约一个小时,但还没有看到另一个链接。 - James andresakis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接