2012-12-11 38 views
1

我想在Android應用程序上使用EditText來限制用戶可以在其中輸入哪些字符。Android鍵盤字符驗證

例如,也許我不希望我的用戶能夠在我的文本框中鍵入字母'X'。如果他們點擊軟鍵盤上的X鍵,輸入應該被忽略。

我得到的印象我可以使用TextWatcher來規範哪些字符可以輸入到文本框中,但我不太確定最好的方式來做到這一點。

回答

1

在XML試試這個EditText

android:digits="abcdef-jklmn" 

不要添加你不想要用戶開關輸入的字符。

0

嘗試:

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

我試過類似這樣的代碼,但我無法讓它工作。 – Pizzor2000

0

使用這一個可以幫助它..

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

});