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---");
}
}