| 1234567891011121314151617181920212223242526272829303132333435363738394041 | /*********************************************輸入框關聯*********************************************************/ et02.setFilters(filter); /*********************************************調用*********************************************************/ PRivate InputFilter[] filter = new InputFilter[] { new InputFilter() { /** * @param source 輸入的文字 * @param start 輸入-0,刪除-0 * @param end 輸入-文字的長度,刪除-0 * @param dest 原先顯示的內容 * @param dstart 輸入-原光標位置,刪除-光標刪除結束位置 * @param dend 輸入-原光標位置,刪除-光標刪除開始位置 * @return */ @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { System.out.println("source =="+ source+" start====="+start+" end======"+end+" dest===="+dest+" dstart==="+dstart+" dend=="+dend); return null; } } }; /*********************************************輸入*********************************************************/09-09 09:30:18.977 10843-10843/zp.example.zptext I/System.out: source ==我 start=====0 end======1 dest==== dstart===0 dend==009-09 09:30:21.873 10843-10843/zp.example.zptext I/System.out: source ==喜歡 start=====0 end======2 dest====我 dstart===1 dend==109-09 09:30:26.817 10843-10843/zp.example.zptext I/System.out: source ==湖畔 start=====0 end======2 dest====我喜歡 dstart===3 dend==309-09 09:31:10.265 10843-10843/zp.example.zptext I/System.out: source ==的 start=====0 end======1 dest====我喜歡湖畔 dstart===5 dend==5 /*********************************************刪除*********************************************************/09-09 09:33:08.089 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我喜歡湖畔的 dstart===5 dend==609-09 09:33:22.341 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我喜歡湖畔 dstart===4 dend==509-09 09:33:27.733 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我喜歡湖 dstart===3 dend==409-09 09:33:30.269 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我喜歡 dstart===2 dend==309-09 09:33:31.485 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我喜 dstart===1 dend==209-09 09:33:32.777 10843-10843/zp.example.zptext I/System.out: source == start=====0 end======0 dest====我 dstart===0 dend==1 |
| 1234567891011121314151617181920212223 | private InputFilter[] filter = new InputFilter[] { new InputFilter() { /** * @param source 輸入的文字 * @param start 輸入-0,刪除-0 * @param end 輸入-文字的長度,刪除-0 * @param dest 原先顯示的內容 * @param dstart 輸入-原光標位置,刪除-光標刪除結束位置 * @param dend 輸入-原光標位置,刪除-光標刪除開始位置 * @return */ // 不讓輸入框輸入內容 @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { return null; } }, /**這里限制輸入的長度為5個字母*/ new InputFilter.LengthFilter(5), /**輸入小寫轉換成大寫*/ new InputFilter.AllCaps() }; |
| 123456789 | // 只要你輸入內容都會替換成“I LOVE YOU”,刪除 - 正常刪除 @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if (end > 0){ return "I LOVE YOU"; }else { return null; } } |
| 123456 | // 控制不讓輸入空格,不讓輸入數字大于13位(解決手機號輸入問題)@Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if(source.equals(" ") || source.toString().contentEquals("/n") || dstart == 13)return ""; else return null; } |
| 1234 | // 不讓輸入框輸入內容(禁止輸入) @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { return dest.subSequence(dstart,dend); |
| 1234567891011121314151617181920212223242526272829303132333435 | /*****************************配置************************************/private final String str = "Hello,Android!"; et03.setFilters(new InputFilter[]{ new MyInputFilter(str) }); /*****************************代碼實現************************************/ public class MyInputFilter implements InputFilter { String str = null; public MyInputFilter(String str) { this.str = str; } @Override public CharSequence filter(CharSequence src, int start, int end, Spanned dest, int dstart, int dend) { String ch = null; if (dest.length() < str.length()) { ch = str.substring(dstart + start, dstart + end); } else { return dest.subSequence(dstart, dend); } if (ch.equals(src)) { Toast.makeText(TextWatchActivity.this, "match", Toast.LENGTH_SHORT).show(); return dest.subSequence(dstart, dend) + src.toString(); } else { Toast.makeText(TextWatchActivity.this, "mismatch", Toast.LENGTH_SHORT).show(); return dest.subSequence(dstart, dend) + "×"; } } } |
| 1234567891011121314 | /**只允許輸入某些字符*/ et03.setKeyListener(new NumberKeyListener() { @Override public int getInputType() { return InputType.TYPE_MASK_VARIATION; } /**這里實現字符串過濾,把你允許輸入的字母添加到下面的數組即可!*/ @Override protected char[] getAcceptedChars() { return new char[]{'0','1','2','3'}; } }); |
| 123456789101112131415161718192021222324252627282930313233 | /*******************************配置************************************/et03.setFilters(new InputFilter[]{lengthfilter2}); /*******************************實現************************************/ private DecimalFormat myformat = new DecimalFormat("###,###"); //金額的格式 private InputFilter lengthfilter2 = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { // 刪除等特殊字符,直接返回 // "".equals(source.toString():不添加會出現刪除不了內容的情況 if (source.toString() == null || source.toString().contains(".") || "".equals(source.toString())) { return null; } String dValue = dest.toString(); if (dValue != null && dValue.contains(",")) { dValue = dValue.replace(",", ""); } if (dValue != null && dValue.length() > 2 && !dValue.contains(",")) { String newValue = dValue + source; String amountStr = myformat.format(Double.parseDouble(newValue)); et03.setText(""); et03.setText(amountStr); et03.setSelection(amountStr.length()); return amountStr; } else { return null; } } }; |
新聞熱點
疑難解答