前言
现在好多人聊天喜欢输入表情, 所以在开发中测试人员也习惯去测试编辑框输入表情,经常出现数据提交失败。然而好多的编辑并不需要表情的或表情符时,这时我们就需要去禁止用户输入表情。
问题
当我们使用setFilters方法过滤表情输入之后,而且通过maxLength增加文本输入字数限制时,两个就不能同时生效了。
原因
因为默认EditTextView是有一个关于maxLength的过滤器的,我们通过setFilters的参数是一个新数组,就覆盖了原来的长度过滤器,所以maxLength就不能生效了,源码:
解决办法
解决办法很简单,就是在设置过滤器时把原来的过滤器拼接到新的数组中去,然后setFilters就ok了:
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength), emojiFilter});
很多人马上就发现这个有个缺点,就是xml里面配置的maxLength就没什么用了,每次都需要在代码中去动态配置这个长度限制。其实解决这
禁止表情输入和长度限制
最新推荐文章于 2022-03-31 18:16:48 发布