zoukankan      html  css  js  c++  java
  • EditText防止输入空格

    使用EditText的时候,很多应用场景下不能输入空格。如何限制不让输入空格呢,这里使用两种方法来实现。

    1.EditText设置监听 addTextChangedListener(new TextWatcher(){})

    etNull.addTextChangedListener(new TextWatcher() {
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    if(s.toString().contains(" ")){
                        String[] str = s.toString().split(" ");
                        StringBuffer content = new StringBuffer();
                        for (int i = 0; i < str.length; i++) {
                            content.append(str[i]);
                        }
                        etNull.setText(content.toString());
                        etNull.setSelection(start);
                    }
                }
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {
    
                }
            });

    需要注意的是,如果不设置setSelection(),输入空格,光标会跑到第一个位置。
    onTextChanged里面,start参数会传入在这个空格输入之前,光标所在的位置,可以通过EditText.setSelection(start)来改变光标的位置。

    2.使用InputFilter

    public static void setEditTextInhibitInputSpace(EditText editText){
            InputFilter filter=new InputFilter() {
                @Override
                public CharSequence filter(CharSequence source, int start, int end,
                        Spanned dest, int dstart, int dend) {
                    if(" ".equals(source)){
                        return "";
                    }else{
                        return null;
                    }
                }
            };
            editText.setFilters(new InputFilter[]{filter});
        }
  • 相关阅读:
    Vue 中使用 viewerjs
    PS 给照片换背景
    HTML学习-1网页基础知识
    git使用
    Java读取XML配置文件
    Java是如何读到hbase-site.xml 的内容的
    HBASE count方法总结
    Getting Started with Java Development on Docker
    持续集成案例学习:Docker、Java与Maven
    利用MAVEN打包时,如何包含更多的资源文件
  • 原文地址:https://www.cnblogs.com/lishbo/p/9956043.html
Copyright © 2011-2022 走看看