隐藏软键盘不起作用

sto*_*986 12 android hide soft-keyboard

我正在使用Droid Incredible进行开发(并且已经在1.5 AVD仿真器上进行了测试),我的选项卡小部件中的一个选项卡包含一个列表视图和一个带有EditText和一个发送按钮的行(用于聊天功能) .单击"发送"后,我将使用以下内容关闭软键盘,但它无法正常工作.这与我在其他地方发现的代码完全相同.

看到我错过的任何东西?

// in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Run Code Online (Sandbox Code Playgroud)

我也尝试将旗帜改为0.没有运气.谁知道怎么了?

****编辑****刚刚意识到我最初使用的是hideSoftInputFromInputMethod()代替hideSoftInputFromWindow().改变它并没有使它工作,但......

sto*_*986 21

将HIDE_IMPLICIT_ONLY更改为0(在我更改为hideSoftInputFromWindow()之后hideSoftInputFromInputMethod()).

但是我不确定为什么HIDE_IMPLICIT_ONLY不起作用,因为我没有在菜单上长按显式打开键盘.

  • 如果您有 **Forced** 显示键盘并想隐藏,请使用以下代码 `InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);` (2认同)

Jos*_*raj 14

防止它在AndroidManifest.xml文件中活动的另一个选项

android:windowSoftInputMode ="stateAlwaysHidden" - 此方法将阻止在加载活动时加载/显示键盘.但是当您单击edittext等可编辑组件时,键盘将会打开.完美的我的要求.

<activity
            android:name=".Name"
            android:label="@string/app_name" 
            android:windowSoftInputMode="stateAlwaysHidden">
Run Code Online (Sandbox Code Playgroud)


Uda*_*n K 11

1.首先用键盘绑定你的编辑文本标记并打开
inputMethodManager.showSoftInput(_edittext, 0);//这里_edittext是视图的实例

如果编辑文本在屏幕上隐藏,则键盘将自动隐藏

3.edit文本仍然在屏幕上,但你想隐藏键盘然后使用下面的代码 imm.hideSoftInputFromWindow(_edittext.getWindowToken(), 0);//如果edittext不在屏幕上或没有聚焦,这将无效.

  • 这是有史以来最好的答案!!!解释了所有键盘隐藏背后的奥秘 (2认同)