0
我想允許用戶僅使用字母數字字符創建用戶名,但字母字符可以是用戶本地語言中的任何字符。只能將輸入限制爲屬於母語字母部分的字符或語言中沒有字母表(如中文),然後限制爲那些通常會被視爲非符號字符的字符(符號字符是問號,冒號等)。Android:將EditText限制爲任何語言的字母數字
使用inputType似乎會造成問題,因爲將其設置爲「text」實際上允許鍵盤顯示符號。
我想允許用戶僅使用字母數字字符創建用戶名,但字母字符可以是用戶本地語言中的任何字符。只能將輸入限制爲屬於母語字母部分的字符或語言中沒有字母表(如中文),然後限制爲那些通常會被視爲非符號字符的字符(符號字符是問號,冒號等)。Android:將EditText限制爲任何語言的字母數字
使用inputType似乎會造成問題,因爲將其設置爲「text」實際上允許鍵盤顯示符號。
EditText editText = (EditText)findViewById(R.id.your_edit_text);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
for(int i=0;i<arg0.toString().length();i++){
if(arg0.toString().charAt(i)=='a char you hate')
//Show an error and change the contents of arg0
}
}
});
EDITED
我已經編輯了答案一點點,因爲在以前的版本認爲他改變了最後一個字符。然而,這是不正確的onTextChanged
即使他插入一個字符在字符串的中間。
我編輯了答案 –