Android点击输入框EditText时hint消失

2019-11-21  本文已影响0人  移动端_小刚哥

我们要实现当点击输入框时提示语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

上一篇下一篇

猜你喜欢

热点阅读