Android 监测EditText变化自动关闭软键盘

Android 我在点击EditText输入完搜索条件后想要自动关闭软键盘,这个怎么实现呢
??

这个需求有问题啊,系统怎么知道你什么时候输入完了呢,是一个字符,还是两个字符,还是多少个字符。。。。
所以没办法知道什么时候输入完的,又怎么自动关闭软键盘呢,
必需要有个触发动作告诉系统你已经输入完了,可以是点其它区域,或者有个完成按钮。或者其它触发条件

edittext有一个addchangeListener()是edittext没输入一个字就会走的一个回调!如果你搜索条件字数都是一样的话,比如说是四个字,可以走这个回调来判断!
而且根据你的需求,我感觉在你输入完成搜索条件,按下搜索按钮的时候,软键盘隐藏!这不是很正常吗?干嘛还是去走edittext。

楼上说的对,你这个需求有问题,谁知道你什么时候输完搜索条件。。

关闭软键盘你得有个触发条件才行,判断用户什么时候输入完毕这个有点...怪异
所以你得点搜索按钮之类的,然后调用下面的代码

 //将键盘下行
        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

很简单啦 给EditText设置内容改变的监听 TextWatcher

可以参考我的博客 : http://blog.csdn.net/sxt_zls/article/details/53909479

/** 
 * Created by sxt on 2016/12/12. 
 */  
public class MyEditTextChangeListener implements TextWatcher {  
    /** 
     * 编辑框的内容发生改变之前的回调方法 
     */  
    @Override  
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
        LogUtils.showLog("MyEditTextChangeListener", "beforeTextChanged---" + charSequence.toString());  
    }  

    /** 
     * 编辑框的内容正在发生改变时的回调方法 >>用户正在输入 
     * 我们可以在这里实时地 通过搜索匹配用户的输入 
     */  
    @Override  
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
        LogUtils.showLog("MyEditTextChangeListener", "onTextChanged---" + charSequence.toString());  
    }  

    /** 
     * 编辑框的内容改变以后,用户没有继续输入时 的回调方法 
     */  
    @Override  
    public void afterTextChanged(Editable editable) {  
        LogUtils.showLog("MyEditTextChangeListener", "afterTextChanged---");  
    }  
}