2014-12-05 78 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", " "); 

希望它可以幫助!