Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android EditText禁止輸入中文字符

Android EditText禁止輸入中文字符

編輯:關於Android編程

只允許EditText輸入數字或者email格式字符是非常簡單的(詳見API文檔)。

要實現只允許輸入自定的數字字符也是很容易的(詳見API文檔,setKeyListener(KeyListener) 和setFilters (InputFilter[]filters) )。

但是要限制只能輸入指定的字母字符就非常的困難。

/**

InputFilter[] ifs = {new InputFilter.LengthFilter(10),new DigitsKeyListener(true,true)};
editText01.setFilters(ifs);

**/

發現,android:digits的參數是一個字符串,沒有更多的語義檢查,因此想到內部處理很可能僅是簡單的檢查,輸入的字符是否在給定的字符串中(要我設計,我就這樣做)。嘗試著給它指定帶有英文字符的參數,發現果然如此。萬幸,萬幸!

在layout.xml裡

Xml代碼 收藏代碼
  1. android:id="@+id/register_userName_editText"
  2. android:digits="@string/register_name_digits"
  3. android:textColor="@drawable/register_edit_text_textColor"
  4. android:textColorHint="@drawable/register_hint_text_textColor"
  5. android:hint="@string/register_name_hint_text"
  6. />

    在string.xml裡

    Xml代碼 收藏代碼
    1. ._0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLIMNOPQRSTUVWXYZ
    2. 另外:

      Java代碼 收藏代碼
      1. editText01.addTextChangedListener(new TextWatcher() {
      2. String tmp = "";
      3. String digits = "abcdef";
      4. @Override
      5. public void onTextChanged(CharSequence s, int start, int before, int count) {
      6. }
      7. @Override
      8. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
      9. tmp = s.toString();
      10. }
      11. @Override
      12. public void afterTextChanged(Editable s) {
      13. Log.d(Sample4Main.TAG, "<><>afterTextChanged<><>" + s.toString());
      14. String str = s.toString();
      15. if(str.equals(tmp)){
      16. return;
      17. }
      18. StringBuffer sb = new StringBuffer();
      19. for(int i = 0; i < str.length(); i++){
      20. if(digits.indexOf(str.charAt(i)) >= 0){
      21. sb.append(str.charAt(i));
      22. }
      23. }
      24. tmp = sb.toString();
      25. editText01.setText(tmp);
      26. }
      27. });
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved