隐藏软键盘不起作用

时间:2010-05-09 00:57:31

标签: 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);

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

****编辑****刚刚意识到我最初使用的是hideSoftInputFromInputMethod()而不是hideSoftInputFromWindow()。改变它并没有使它工作......

4 个答案:

答案 0 :(得分:21)

将HIDE_IMPLICIT_ONLY更改为0(我从hideSoftInputFromWindow()更改为hideSoftInputFromInputMethod()后)。

但是我不确定为什么HIDE_IMPLICIT_ONLY无效,因为我没有在菜单上长按显式打开键盘。

答案 1 :(得分:14)

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

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

<activity
            android:name=".Name"
            android:label="@string/app_name" 
            android:windowSoftInputMode="stateAlwaysHidden">

答案 2 :(得分:11)

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

2.如果编辑文本从屏幕隐藏

,键盘将自动隐藏

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

答案 3 :(得分:0)

尝试在 onResume/onCreate 中执行:

rootView.requestFocus();

rootView 是您的主视图。这会将焦点从 EditText 上移开。