我们要实现当点击输入框时提示语hint消失的效果,简单查询发现需要使用OnFocusChangeListener
_editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus==true){//获取焦点了
_editText.setHint("");
}else {
_editText.setHint("搜索");
}
}
});
这个时候我们实现了点击输入框获取光标,同时提示语hint消失,但是又出现了一个新的问题,那就是点击第一下获取了光标但是没有弹出键盘(网上还有的人想要实现这个效果而不能😂,真是什么需求都有可能啊),那么我们就需要在获取焦点时手动调出软键盘
/*弹出软键盘*/
public static void showSoftInputFromWindow(EditText editText){
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();
InputMethodManager inputManager =
(InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
使用方法
_editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus==true){//获取焦点了
_editText.setHint("");
Utils.showSoftInputFromWindow(_editText);
}else {
_editText.setHint("搜索");
}
}
});
参考文章
https://blog.csdn.net/qq1271396448/article/details/80868880
网友评论