2014-12-05 56 views
1

我需要限制用户在单词之间输入多个空格。有没有办法限制每个字只有一个空格的用户?在EditText中过滤多个空格(Android)

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; 
     } 

回答

4

试试这个

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) { 

     } 
    }); 
0

你可以叫EditText.addTextChangedListener(TextWatcher)

然后实现自己的TextWatcher接口。

的关键是

afterTextChanged(Editable s) 

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

1
editText.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) { 
        String temp = s.toString(); 
        temp.replace(" ", " "); 
        editText.setText(temp); 
       } 
      }); 
0

如果你想删除多个空格,使用下面的代码:

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

希望它可以帮助!