Android 强制软键盘关闭

  在Android开发过程中,有时候我们会有强制关闭软键盘的需求。比如说:现在有一个文本编辑框(testEt)和一个按钮(testBtn),我们现在点击文本编辑框testEd,这时会弹出软键盘,然后我们点击按钮testBtn,此时软键盘还是保持了打开的状态...问题来了,我们想要的结果是软键盘消失。(testBtn只是我随便举的一个例子,也可以使别的控件例如下拉框、可点击的图片、自定义空间等等)

  下面提供两种方法解决:

  一、这种方法只是关闭软键盘: 

  在按钮testBtn调用以下方法hideKeyboard():

  private void hideKeyboard() {
    InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm.isActive() && this.getCurrentFocus() != null) {
      if (this.getCurrentFocus().getWindowToken() != null) {
        imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
      }
    }
  }

  二、这种方法会线判断软键盘的状态,如果时关闭状态则打开,如果是打开状态则关闭:

  在按钮testBtn调用以下方法hideKeyboard():

  private void hideKeyboard() {
    InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm.isActive()) {
      if (this.getCurrentFocus().getWindowToken() != null) {
        imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
      }
    }
  }

 

  

时间: 2024-10-11 08:32:34

Android 强制软键盘关闭的相关文章

android EditText 软键盘 一些总结

看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置这个属相:android:windowSoftInputMode=stateVisible,这样就会默认弹起输入法,当然还有别的办法. <activity android:name=".ui.login" android:configChanges="orientation|keyboardHidden|locale" an

android editText 软键盘enter键图标的设置

<EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入单位" android:layout_marginLeft="10dp" android:layout_marginRight="1

android 设置软键盘默认为26位软键盘

在EditText中设置属性 android:inputType="textUri|textMultiLine" android 设置软键盘默认为26位软键盘

android开发 软键盘出现后 防止EditText控件遮挡 整体平移UI

在EditText控件接近底部的情况下 软键盘弹出后会把获得焦点的EditText控件遮挡 无法看到输入信息 防止这样的情况发生 就需要设置AndroidManifest.xml的属性 前面的xml信息省略 在activity中 增加android:windowSoftInputMode="adjustPan" <activity ........................................................ android:windowSoft

Android自定义软键盘

前不久由于项目的需要,要做一个自定义的软键盘,我也上网看了很多,都觉得很繁琐,所以想自己动手实现个.以备不时之需把.我选择了参考百度钱包的软键盘,看起来还不错: 下面一起来实现它: 1.写一个键盘控件,这个实现起来比较简单,就不多说了 public class SoftInputBoard extends RelativeLayout implements View.OnClickListener{ private Scroller mScroller; private int mScreenH

Android判断软键盘弹出并隐藏的简单完美解决方案

最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT

android 打开软键盘

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation

android设置软键盘搜索键以及监听搜索键点击时发生两次事件的问题解决

如图所示,有时候为了布局美观,在搜索时没有搜索按钮,而是调用软件盘上的按钮.调用的实现只需要在XML在输入框中加入android:imeOptions="actionSearch",调用软键盘时,回车键就会显示搜索二字. 然后调用 OnEditorActionListener,不是OnKeyListener searchText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boole

Android 获取软键盘的删除delete事件

对于软键盘删除事件,网上有很多方案是如下,但是 google api也说明了,这个只是监听硬件键盘,对于软键盘并不负责触发(我测试了一下,软键盘能够监听delete键,其他键像数字字母等没有触发这里的监听方法). editText.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //You can identify which