在Android应用中,只要活动启动,文本框就会获得焦点,软键盘会自动弹出。我试图通过在onCreate方法中使用以下行来阻止它,但它不起作用。
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(EditText.getWindowToken(), 0);
答案 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"
欢呼喜欢编码....