Java 在EditText(Android)中过滤多个空格

Java 在EditText(Android)中过滤多个空格,java,android,spacing,Java,Android,Spacing,我需要限制用户在单词之间输入多个空格。有没有办法限制用户每个单词只有一个空格 if (validateStatus && RegistraionRequestType.RegisterationCompleteReq.descdet.trim() .length() < 50) { Log.e("Validate---------------------- ",RegistraionR

我需要限制用户在单词之间输入多个空格。有没有办法限制用户每个单词只有一个空格

if (validateStatus
                && RegistraionRequestType.RegisterationCompleteReq.descdet.trim()
                .length() < 50) {
            Log.e("Validate----------------------  ",RegistraionRequestType.RegisterationCompleteReq.descdet+ "    --ValidateXCalled");
            warning = getResources().getString(R.string.description_msg);
            registeration_frm_et_id_description.requestFocus();
            validateStatus = false;
        }
if(validateStatus)
&&RegistrationRequestType.RegistrationCompleteReq.descdet.trim()文件
.length()<50){
Log.e(“Validate----------------”,registrationRequestType.registrationCompleteReq.descdet+“-validateExcalled”);
警告=getResources().getString(R.string.description\u msg);
Registration_frm_et_id_description.requestFocus();
validateStatus=false;
}
试试这个

    editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            editText.setText(s.toString().trim().replaceAll("\\s+", " "));
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
试试这个

    editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            editText.setText(s.toString().trim().replaceAll("\\s+", " "));
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

您可以调用EditText.addTextChangedListener(TextWatcher)

然后实现您自己的TextWatcher接口

关键是

    afterTextChanged(Editable s)

可以从第一个参数检查EditText中的现有文本。如果最后一个字符是两个连续的空格,您可以通过编程将文本设置为其子字符串(0,长度为1)。

您可以调用EditText.addTextChangedListener(TextWatcher)

然后实现您自己的TextWatcher接口

关键是

    afterTextChanged(Editable s)

可以从第一个参数检查EditText中的现有文本。如果最后一个字符是两个连续的空格,则可以通过编程方式将文本设置为其子字符串(0,长度为1)。

如果要删除多个空格,请使用以下代码:

string.replaceAll("\\s", " ");

希望能有帮助

如果要删除多个空格,请使用以下代码:

string.replaceAll("\\s", " ");

希望能有帮助

我知道这个问题太老了,无法回答,仍然想分享一些有用的代码作为解决方案:

private InputFilter spaceFilter() {
    return new InputFilter() {
        public CharSequence filter(CharSequence source, int start, int end,
                                   Spanned dest, int dstart, int dend) {
            for (int i = start; i < end; i++) {
                if (Character.isWhitespace(source.charAt(i))) {
                    if (dstart == 0 || (dstart > 1 && dest.charAt(dstart - 1) == ' ')) return "";
                }
            }
            return null;
        }
    };
}
private InputFilter spaceFilter(){
返回新的InputFilter(){
公共CharSequence筛选器(CharSequence源、int开始、int结束、,
跨越目的地、内部数据起点、内部数据起点){
for(int i=start;i1&&dest.charAt(dstart-1)=='')返回“”;
}
}
返回null;
}
};
}

我知道这个问题太老了,无法回答,仍然想分享一些有用的代码作为解决方案:

private InputFilter spaceFilter() {
    return new InputFilter() {
        public CharSequence filter(CharSequence source, int start, int end,
                                   Spanned dest, int dstart, int dend) {
            for (int i = start; i < end; i++) {
                if (Character.isWhitespace(source.charAt(i))) {
                    if (dstart == 0 || (dstart > 1 && dest.charAt(dstart - 1) == ' ')) return "";
                }
            }
            return null;
        }
    };
}
private InputFilter spaceFilter(){
返回新的InputFilter(){
公共CharSequence筛选器(CharSequence源、int开始、int结束、,
跨越目的地、内部数据起点、内部数据起点){
for(int i=start;i1&&dest.charAt(dstart-1)=='')返回“”;
}
}
返回null;
}
};
}

@PratikMohanraoGondil:它对我有用,请给我看一下你的代码片段,这样我就可以查看了it@PratikMohanraoGondil:它对我有用,请给我看一下你的代码片段,这样我就可以查看它了