Android:EditText和Button;单击按钮时,取消聚焦EditText并隐藏软键盘?

时间:2010-06-24 13:12:49

标签: android

<EditText android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_weight="1"
    android:id="@+id/name" android:singleLine="true"
    android:maxLength="12" android:capitalize="none" android:inputType="text" />
<Button android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:id="@+id/search_button"
    android:text="Search" />

我在申请的顶部有这个。当应用程序启动时,EditText突出显示为橙色并且其中有一个光标;点击EditText时,会弹出软键盘。用户使用它键入EditText。

但是,当他们单击Button时,我的onClick方法会触发并执行它应该执行的所有操作,但是软键盘会保留在屏幕上,而EditText仍然会用光标突出显示。

我也有,在按钮onclick的顶部:

findViewById(R.id.name).clearFocus();

尽管如此,EditText似乎还没有清楚它的重点。如何使按钮实际上就像提交表单一样?

此外,我不会在点击按钮时转换到其他活动。我想这是典型的情况,也可能是他们不打扰隐藏键盘的原因。但是我希望将搜索框和按钮保持在屏幕顶部,这样我只需在按下按钮时动态填充并向屏幕添加视图。

我如何实现我想要的行为?

1 个答案:

答案 0 :(得分:13)

你可以通过调用它来隐藏键盘。

InputMethodManager imm = (InputMethodManager) getSystemService(
    INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindowToken(), 0);