如何为所有活动隐藏Android键盘

时间:2014-03-26 08:12:27

标签: java android mobile keyboard

我想创建一个隐藏键盘的活动。活动将继续作为服务在后台运行,并防止键盘对所有应用程序可见。因为除非活动停止,否则键盘不会出现。有人能指出我正确的来源吗?

3 个答案:

答案 0 :(得分:0)

将以下代码放在清单文件中:

<activity
            android:name=".View.ViewRegistration"
            android:configChanges="keyboardHidden"
            android:windowSoftInputMode="stateHidden" />

我希望它对你有用。你可以在onresume()和onPause()的每个活动中调用以下方法。

public static void hideKeyboard(final Activity activity) {
        InputMethodManager inputManager = (InputMethodManager) activity
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        if (activity.getCurrentFocus() != null) {
            inputManager.hideSoftInputFromWindow(activity.getCurrentFocus()
                    .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }

答案 1 :(得分:0)

活动不能仅仅保留在后台作为服务运行&#34;。

来自documentation

  

活动是用户可以做的一件重点事。几乎所有活动都与用户交互,因此Activity类负责为您创建一个窗口......

您需要创建Service。我没有尝试通过服务隐藏键盘,但一个疯狂的猜测是,它是不可能的。

解决方案可能是创建自己的键盘,然后用户需要切换到。

答案 2 :(得分:0)

您可以在manifest中为您需要隐藏键盘的所有活动添加以下一行代码:

 android:windowSoftInputMode="stateHidden"

例如:

<activity
            android:name="com.example.yourappname.MainActivity"
            android:screenOrientation="portrait"
             android:windowSoftInputMode="stateHidden" 
            >