edittext限制长度为10输入emoji表情包出现乱码该怎么处理
时间: 2024-03-02 13:52:38 浏览: 30
要解决这个问题,可以使用输入过滤器(InputFilter)来限制输入的长度,并且过滤掉Emoji表情符号。示例代码如下:
```
public class EmojiInputFilter implements InputFilter {
private static final int MAX_LENGTH = 10;
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
int keep = MAX_LENGTH - (dest.length() - (dend - dstart));
if (keep <= 0) {
return "";
} else if (keep >= end - start) {
return null; // keep original
} else {
int k = start;
int len = 0;
for (; k < end; k++) {
int codePoint = source.charAt(k);
if (!Character.isHighSurrogate(codePoint) && !Character.isLowSurrogate(codePoint) && len < keep) {
len++;
} else {
break;
}
}
return source.subSequence(start, k);
}
}
}
```
然后在EditText的代码中添加输入过滤器即可:
```
editText.setFilters(new InputFilter[]{new EmojiInputFilter()});
```
这样就可以限制输入的长度,并且过滤掉Emoji表情符号,避免出现乱码。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)