maxlength不起作用android,Android EditText禁止输入Emoji后设置android:maxLength失效的问题...
0X00 禁用emoji
有時(shí)候我們不想在EditText中輸入Emoji表情,怎么處理呢?
我們可以通過設(shè)置InputFilter的方式來達(dá)到這個(gè)目的。怎么實(shí)現(xiàn)呢?直接上代碼。
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 問題
但是當(dāng)我們?cè)O(shè)置了InputFilter之后可能會(huì)出現(xiàn)一個(gè)問題,就是當(dāng)我們?cè)诖a中設(shè)置android:maxLength="8"的時(shí)候,會(huì)發(fā)現(xiàn)不起作用了。我們點(diǎn)進(jìn)去InputFilter,查看其源碼我們就會(huì)發(fā)現(xiàn),里面還有個(gè)自帶的LengthFilter。我們就可以通過再添加一個(gè)LengthFileter就可以了。
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(8), emojiFilter})
總結(jié)
以上是生活随笔為你收集整理的maxlength不起作用android,Android EditText禁止输入Emoji后设置android:maxLength失效的问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu输出hash值
- 下一篇: 告别尬聊,觅伊迎来Z世代青年的社交新世界