隐藏更衣室应用程序的软键盘

我正试图关闭在另一个应用中打开的软键盘。 我尝试了从这里的每个解决方案:以编程方式隐藏/显示Android软键盘或在这里:关闭/隐藏Android软键盘

正如你可以在图片中看到的,我必须关闭从另一个应用程序打开的键盘,添加到清单,不要让键盘可见,并没有把戏。

要注意这是一个储物柜应用程序,当手机进入睡眠模式时,我开始一个活动。

我错过了什么吗? 从商店测试其他更衣柜应用程序并没有遇到这个问题

但结果如下:

打开键盘的应用程序我的应用程序

编辑:更多信息

这是我如何开始更衣室:

if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
    //Toast.makeText(context, "" + "screeen off", Toast.LENGTH_SHORT).show();

    wasScreenOn = false;
    Intent intent = new Intent(context, LockScreenActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    context.startActivity(intent);

    // do whatever you need to do here
    //wasScreenOn = false;
} 

这是清单代码:

<activity
    android:name=".ui.activities.LockScreenActivity"
    android:excludeFromRecents="true"
    android:noHistory="true"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

AndroidManifest.xml尝试用android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" android:windowSoftInputMode="stateHidden"行替换android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" ,像这样

<activity
        android:name=".ui.activities.LockScreenActivity"
        android:excludeFromRecents="true"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

作为参考,您可以参考http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

“stateHidden”当用户选择活动时隐藏软键盘 - 也就是说,当用户肯定导航到活动时,而不是因为离开另一活动而回退到该活动。

“stateAlwaysHidden”当活动的主窗口具有输入焦点时,软键盘始终处于隐藏状态。


它可以实现覆盖此活动的onPause()并使用以下代码片段

@Override
public void onPause() {
    super.onPause();
    if (null != getWindow()){
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }
}

在你的活动中试试这个:

private void hideKeyboard() {   
    // Check if no view has focus:
    View view = this.getCurrentFocus();
    if (view != null) {
        InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}
链接地址: http://www.djcxy.com/p/93325.html

上一篇: Hide softkeyboard for locker app

下一篇: Android softkeyboard never shows up in emulator