我想在Android應用程序上使用EditText來限制用戶可以在其中輸入哪些字符。Android鍵盤字符驗證
例如,也許我不希望我的用戶能夠在我的文本框中鍵入字母'X'。如果他們點擊軟鍵盤上的X鍵,輸入應該被忽略。
我得到的印象我可以使用TextWatcher來規範哪些字符可以輸入到文本框中,但我不太確定最好的方式來做到這一點。
我想在Android應用程序上使用EditText來限制用戶可以在其中輸入哪些字符。Android鍵盤字符驗證
例如,也許我不希望我的用戶能夠在我的文本框中鍵入字母'X'。如果他們點擊軟鍵盤上的X鍵,輸入應該被忽略。
我得到的印象我可以使用TextWatcher來規範哪些字符可以輸入到文本框中,但我不太確定最好的方式來做到這一點。
在XML試試這個EditText
android:digits="abcdef-jklmn"
不要添加你不想要用戶開關輸入的字符。
嘗試:
myEditText.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
s = removeChars(s);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
public static String removeChars(String input) {
String charactersToDelete = "áàäéèëíìïóòöúùuñÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÑçÇQWERTYUIOPÑLKJHGFDSAZXCVBNM";
String output = input;
for (int i=0; i<original.length(); i++) {
output.replaceAll(charactersToDelete.charAt(i)+"", "");
}
return output;
}
使用這一個可以幫助它..
editText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch(keyCode)
{
case KeyEvent.KEYCODE_0:
//handle code for pressing 0
break;
default:
break;
}
}
});
我試過類似這樣的代碼,但我無法讓它工作。 – Pizzor2000