点击页面其他地方取消EditText的焦点并且隐藏软键盘的方法

来源:互联网 发布:mac ssh key 目录 编辑:程序博客网 时间:2024/05/18 02:02

代码如下:

//mContentView是整个页面,tv_ps_username是edittextmContentView.setOnTouchListener(new OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                mContentView.setFocusable(true);                  mContentView.setFocusableInTouchMode(true);                  mContentView.requestFocus();                  InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);                   imm.hideSoftInputFromWindow(tv_ps_username.getWindowToken(), 0);                return false;            }        });

进入一个页面时edittext会自动获取焦点,并出现软键盘,不想让他显示的话只需给父布局添加这两条属性:

android:focusable="true"                              android:focusableInTouchMode="true"

20170118更新

更简单的方法是在一个页面上通过整个页面的视图的点击事件 ,点击时获取当前activity的焦点,不说了,上代码:

contentView.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                if(null != BaseActivity.this.getCurrentFocus()){                    /**                     * 点击空白位置 隐藏软键盘                     */                    InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);                    return mInputMethodManager.hideSoftInputFromWindow(BaseActivity.this.getCurrentFocus().getWindowToken(), 0);                }                return false;            }        });

比上面那个坑爹方法简单一万倍

0 0