限制EditText必须输入中文的方法
来源:互联网 发布:域名未授权怎么办 编辑:程序博客网 时间:2024/05/29 05:05
给EditText做限制时,我们想要输入的字符串必须都是中文,不出现任何其他字符,下面的类可以很好的实现这个要求。
package com.kale.buttonselector;import android.content.Context;import android.text.InputFilter;import android.text.Spanned;import android.widget.EditText;/** * @author:Jack Tony * @description : 对输入字符进行处理 * @date :2015年2月21日 */public class InputLenLimit { public static void lengthFilter(final Context context, final EditText editText) { InputFilter[] filters = new InputFilter[1]; filters[0] = new InputFilter.LengthFilter(INPUT_LIMIT_LEN) { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { boolean isChinese = checkNameChese(source.toString()); // 如果不是中文,或者长度过长就返回“” if (!isChinese || dest.toString().length() >= INPUT_LIMIT_LEN) { return ""; } return source; } }; // Sets the list of input filters that will be used if the buffer is Editable. Has no effect otherwise. editText.setFilters(filters); } /** * 检测String是否全是中文 * * @param name */ public static boolean checkNameChese(String name) { boolean res = true; char[] cTemp = name.toCharArray(); for (int i = 0; i < name.length(); i++) { if (!isChinese(cTemp[i])) { res = false; break; } } return res; } /** * 判定输入汉字是否是中文 * * @param c */ public static boolean isChinese(char c) { for (char param : chineseParam) { if (param == c) { return false; } } Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; } public static final int INPUT_LIMIT_LEN = 20; private static char[] chineseParam = new char[] { '」', ',', '。', '?', '…', ':', '~', '【', '#', '、', '%', '*', '&', '$', '(', '‘', '’', '“', '”', '『', '〔', '{', '【', '¥', '£', '‖', '〖', '《', '「', '》', '〗', '】', '}', '〕', '』', '”', ')', '!', ';', '—' };}
阅读全文
1 0
- 限制EditText必须输入中文的方法
- EditText中禁止输入中文的方法及长度限制
- 限制EditText不能输入中文的监听器
- android EditText限制输入字数的方法
- editText限制输入的4种方法
- editText限制输入的4种方法
- editText限制输入的5种方法
- 限制EditText 不能输入中文
- EditText 只能限制输入中文
- EditText限制输入类型方法
- EditText中禁止输入中文的方法
- 限制只能中文输入的方法
- EditText中输入信息的限制的方法
- 如何限制edittext输入字数 3种方法的
- 关于在Android中限制EditText输入条件的方法
- EditText限制字符输入的几种方法
- Android设置EditText输入字数限制的两种方法!
- 限制EditText的输入字数
- pyScripter编译python中提示的编码错误
- 你与顶级UI设计师的区别在哪里
- Ajax -- 接受 XML 响应格式的数据
- iOS MD5加密
- centos 文件权限整理
- 限制EditText必须输入中文的方法
- Git学习笔记
- 匿名类型&&堆和栈
- 嚼得菜根做得大事·《菜根谭》·八
- 深拷贝与浅拷贝
- Crontab详解
- 多项式插值法
- Qt学习 前章2-Qt creator快捷键
- 【ccf-201703-2】学生排队