从电子邮件客户端返回后键盘未关闭

时间:2013-03-12 13:01:47

标签: android android-intent android-softkeyboard

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

我试过了:

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

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

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

android:windowSoftInputMode="stateAlwaysHidden"

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

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

3 个答案:

答案 0 :(得分:2)

找到解决方案。几毫秒后,焦点从应用程序外部(Email-client)更改为editText视图。然后我可以关闭键盘。 所以我的解决方案看起来像这样:

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

            @Override
            public void run() {
                closeKeyboard();
            }
        }, 20);

答案 1 :(得分:0)

在清单的活动代码中使用android:windowSoftInputMode="stateHidden"

答案 2 :(得分:0)

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