自定義程序實現Android EditText隻允許輸入指定字符
程序設計的很多地方都要用到一個小技術:指定文本框的輸入類型。即限製隻能輸入某幾類或某類字符,甚至是某幾個字符。Android本身已經做了很多設計,如限製長度,限製隻能輸入整數或數字。
有時候這些還是不夠的。我們可以在程序中根據需要自己定製。
主要涉及:EditText.addTextChangedListener,EditText.removeTextChangedListener,EditText.setFilters。
方法:
對EditText添加自定義的TextChange監聽。在改監聽中檢測輸入字符是否合法。
關鍵代碼如下:
@Override public void afterTextChanged(Editable s) { String str = s.toString(); if (str.equals(tmp)) { return;// 如果tmp==str則返回,因為這是我們設置的結果。否則會形成死循環。 } StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { if (digits.indexOf(str.charAt(i)) >= 0) {// 判斷字符是否在可以輸入的字符串中 sb.append(str.charAt(i));// 如果是,就添加到結果裏,否則跳過 } } tmp = sb.toString();// 設置tmp,因為下麵一句還會導致該事件被觸發 editText.setText(tmp);// 設置結果 editText.invalidate(); }
最後更新:2017-04-04 07:03:42