按下按钮时清除edittext焦点并隐藏键盘

Guy*_*Guy 5 java eclipse android focus android-edittext

我正在使用edittext和一个按钮创建一个应用程序.当我在edittext中输入内容然后单击一个按钮时,我想要键盘并专注于edittext消失,但我似乎无法做到.

我在XML中插入了这两行代码:

android:focusable="true"
android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)

我还尝试在按钮单击方法中添加它:

edittext.clearFocus();
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

它只是不起作用,按下按钮后,键盘仍然在那里,edittext仍然有焦点.

Tar*_*run 12

要隐藏键盘,请调用:

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

您还可以查看此解决方案:https: //stackoverflow.com/a/15587937/786337


lon*_*ngi 12

另一个解决方案是,创建一个虚拟布局

<!-- Dummy item for focus at startup -->
<LinearLayout
    android:id="@+id/dummy_id"
    android:orientation="vertical"
    android:layout_width="0px"
    android:layout_height="0px"
    android:focusable="true"
    android:focusableInTouchMode="true" />
Run Code Online (Sandbox Code Playgroud)

并将焦点放在你的 onButtonClickFunction

((LinearLayout) findViewById(R.id.dummy_id)).requestFocus();
Run Code Online (Sandbox Code Playgroud)