Android输入框清除信息后键盘自动升起

最近遇到一个问题 在搜索界面有一个EditText,我输入文字后,收起键盘,然后清空输入框的文字,这时该怎样使键盘自动升起?

4个回答

很简单啦 只需要设置EditText的内容改变的监听TextWatcher 即可 具体可以参考我的博客 Editext监听内容变化


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


sxt_zls
说点儿什么吧~ 回复IT梦想者: 没事 ,共同进步…
大约 3 年之前 回复
qq_30577905
IT梦想者 谢谢
大约 3 年之前 回复
  tvText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if(s.length()==0){//已清空
                    //弹出软件盘
                    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN);
                }

            }
        });

从文本框移除焦点应该会使键盘收起吧?

意思是指当清空文字后弹出键盘么?
如果是这样的话,可以添加一个方法判断,清空内容后判断是否已经弹出弹框,如果未弹出弹框,则弹出。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问