IT梦想者
2017-04-26 12:03
采纳率: 14.3%
浏览 1.3k

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 狗屎糖 2017-04-26 12:15
    已采纳

    很简单啦 只需要设置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---");  
        }  
    }  
    
    
    
    打赏 评论
  • qq_36087651 2017-04-26 12:20

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

    打赏 评论
  • 小_爽 2017-04-27 00:24

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

    打赏 评论
  • RaleighLuo 2017-04-27 00:39
      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);
                    }
    
                }
            });
    
    打赏 评论

相关推荐 更多相似问题