Android(安卓)EditText禁止输入Emoji后设置android:maxLength失效的问题
16lz
2022-01-28
0X00 禁用emoji
有时候我们不想在EditText
中输入Emoji表情,怎么处理呢?
我们可以通过设置InputFilter
的方式来达到这个目的。怎么实现呢?直接上代码。
public InputFilter emojiFilter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { for (int index = start; index < end; index++) { int type = Character.getType(source.charAt(index)); if (type == Character.SURROGATE) { return ""; } } return null; } };
0X01 问题
但是当我们设置了InputFilter
之后可能会出现一个问题,就是当我们在代码中设置 android:maxLength="8"
的时候,会发现不起作用了。我们点进去InputFilter
,查看其源码我们就会发现,里面还有个自带的LengthFilter
。我们就可以通过再添加一个LengthFileter
就可以了。
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(8), emojiFilter})
更多相关文章
- Android中的DownloadManager
- android spinner自动弹出列表,设置title,TtextView不换行自动截取
- Android(安卓)BitmapFactory.Options 介绍
- Android(安卓)的网络编程
- Eclipse下Android-SDK-1.5模拟器启动设置
- Android(安卓)程序获取、设置铃声、音量、静音、扬声器
- android 4中新增的日历处理相关API
- Android(安卓)属性动画(Property Animation) 完全解析 (下)
- Android(java)学习笔记113:Android编写代码调用Vibrator震动功能,按