如何在Android中的活动启动时保持软键盘打开?

时间:2010-06-14 13:01:14

标签: android

在Android应用中,只要活动启动,文本框就会获得焦点,软键盘会自动弹出。我试图通过在onCreate方法中使用以下行来阻止它,但它不起作用。

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(EditText.getWindowToken(), 0);

7 个答案:

答案 0 :(得分:105)

我知道这已经过时了,但将来可能会有所帮助...

我没有看到有人建议“stateHidden”

From the Android docs - android:windowSoftInputMode

您的清单文件如下:

<activity
    ...
    android:windowSoftInputMode="stateHidden|adjustResize"
    ...
>

答案 1 :(得分:19)

您可以使用以下代码行确保仅当用户点击EditText时弹出键盘

<强>爪哇

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

<强>科特林

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)

您需要添加

  

android:windowSoftInputMode =“adjustResize”

到AndroidManifest.xml文件中的您的活动代码。

答案 2 :(得分:2)

以下是否有效?

// Find editor
EditText editWindowInstance = this.findViewById(R.id.MyEditWindow);

// close soft keyboard 
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editWindowInstance.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

答案 3 :(得分:1)

您可以将此代码放在Activity.onCreate中: 。this.getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

但我发现最可靠和最干净的方法是在活动XML布局中将焦点设置到不同的视图

<Button
  android:id="@+id/mybutton">
  <requestFocus />
</Button>

答案 4 :(得分:1)

没有一个解决方案对我有用。最后,一个非常简单的解决方案像魔术一样起作用。 在父级布局中添加这两行。

android:focusable="true" 
android:focusableInTouchMode="true"

答案 5 :(得分:0)

以下代码适用于我

((InputMethodManager) iClockActivity
                    .getSystemService(Context.INPUT_METHOD_SERVICE))
                    .showSoftInput(textView, 0);

答案 6 :(得分:0)

这将完美地运作,试试这个

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

并将以下内容添加到您的清单中。

android:windowSoftInputMode="stateHidden|adjustResize"
欢呼喜欢编码....