上一篇文章刚提到解决了EditText的限制中文字符的情况,令人头疼的问题又来了,输入密码的时候,输入了表情符号.""
网上查阅了一下解决方案,但是在不同的平台的系统上面,操作的解决也不一样,就修改了一下.终于把问题解决了.
代码如下:
EditText et = (EditText)findViewById(R.id.et);
et.setFilters(new InputFilter[]{emojiFilter});
/**
* 过滤emoj表情
*/
InputFilter emojiFilter = new InputFilter() {
Pattern emoji = Pattern
.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart,int dend) {
Matcher emojiMatcher = emoji.matcher(source);
if (emojiMatcher.find()) {
return "";
}
return null;
}
};
这样就解决了EditText在不同版本中,输入emjoy表情的问题了.