5

我有一个通过电子邮件共享杂货清单的 Android 应用程序。我有一个问题,当我通过电子邮件客户端(可能是 Exchange 客户端或 Gmail 客户端)发送列表后,键盘无法关闭。

我试过了:

InputMethodManager mgr = (InputMethodManager) getSystemService(
        Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editTxt.getWindowToken(), 0);

和许多其他方式。如果我检查键盘是否打开,它将返回,false因为调用键盘的不是应用程序,而是电子邮件客户端。

我找到了一种解决方法,包括:

android:windowSoftInputMode="stateAlwaysHidden"

然后应用程序将强制关闭键盘,但每次我再次打开键盘时都会继续滞后。

三星手机只有在我使用 Gmail 客户端时才会出现问题。

4

3 回答 3

2

找到了解决方案。几毫秒后,焦点从应用程序(电子邮件客户端)外部变为 editText 视图。然后我可以关闭键盘。所以我的解决方案如下所示:

Timer timer = new Timer();
timer.schedule(new TimerTask() {

            @Override
            public void run() {
                closeKeyboard();
            }
        }, 20);
于 2013-03-12T14:09:10.313 回答
0

android:windowSoftInputMode="stateHidden"在清单的活动标签中使用

于 2013-03-12T13:04:00.840 回答
0

您是否将此代码放在onResume()方法中?

于 2013-03-12T13:04:20.987 回答