• 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});
        }
  • 相关阅读:
    (2015年郑州轻工业学院ACM校赛题) B迷宫
    (2015年郑州轻工业学院ACM校赛题) A 彩票
    POJ 1861 Network
    动态逆序对
    K大数查询
    Dynamic Rankings
    Cleaning
    Boxes
    P3601 签到题
    How many integers can you find
  • 原文地址:https://www.cnblogs.com/lishbo/p/9956043.html
Copyright © 2020-2023  润新知