首页 > 其他 > 详细

EditText失去焦点隐藏软键盘

时间:2014-03-11 07:24:01      阅读:2475      评论:0      收藏:0      [点我收藏+]

很奇怪,我在给EditText设置setOnFocusChangeListener()监听,但是始终未能成功,焦点一直存在,不知其原因,,代码如下:

bubuko.com,布布扣
 1 et_password.setOnFocusChangeListener(new OnFocusChangeListener() {
 2             
 3             @Override
 4             public void onFocusChange(View v, boolean hasFocus) {
 5                 if (hasFocus) {
 6                     InputMethodManager imm = (InputMethodManager) getActivity()
 7                             .getSystemService(Context.INPUT_METHOD_SERVICE);
 8                     imm.hideSoftInputFromWindow(et_username.getWindowToken(), 0);
 9                 }
10                 
11             }
12         });
bubuko.com,布布扣

后来各种百度,最后给fragment设置了setOnTouchListener(this)监听,达到了预期的效果,代码如下:

bubuko.com,布布扣
@Override
    public boolean onTouch(View v, MotionEvent event) {
        InputMethodManager imm = (InputMethodManager) getActivity()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(et_username.getWindowToken(), 0);
        imm.hideSoftInputFromWindow(et_password.getWindowToken(), 0);
        return true;
    }
bubuko.com,布布扣

这里要解释下返回值true:

Android Developers上查看了一下这个接口和这个方法,文档中对该方法的返回值描述如下:True if the listener has consumed the event, false otherwise。大概意思就是说,如果返回true,则表示监听器消耗了该事件(我的理解就是不用继续向上传递该事件了,该事件的传递到此为止);否则返回false。首先触发到的监听是最底层最直接给它设置的监听,如果是false,并且它的父控件如果也注册次监听,那么它的父控件也会监听也会被触发 ;如果是true,则不会触发父控件的监听。

如果是Activity,直接重写onTouchEvent方法。代码如下:

bubuko.com,布布扣
1     @Override
2     public boolean onTouchEvent(MotionEvent event) {
3         InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
4         imm.hideSoftInputFromWindow(et_username.getWindowToken(), 0);
5         imm.hideSoftInputFromWindow(et_password.getWindowToken(), 0);
6         return super.onTouchEvent(event);
7 
8     }
bubuko.com,布布扣

EditText失去焦点隐藏软键盘,布布扣,bubuko.com

EditText失去焦点隐藏软键盘

原文:http://www.cnblogs.com/ws5861/p/3591195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!