Android EditText: 如何避免用户输入表情符号?

4
我希望避免用户通过键盘在EditText中输入表情符号。这可行吗?

1
你能说得清楚一点吗? - Achiever
你是想避免表情符号并允许一切,还是只允许文本+数字(不包括特殊字符)?请澄清。 - SMR
是的,只想避免表情符号并允许一切。 - wawanopoulos
1
这个问题对我来说很明显,为什么会被踩得那么多呢。我给你点赞+1。 - Mathijs Segers
这里提供Kotlin解决方案 - https://dev59.com/w1gR5IYBdhLWcg3ww_s0#52947835 - abitcode
2个回答

13

这里编辑答案。

这将仅允许在EditText中输入ASCII字符。

edittext.setFilters(new InputFilter[] {
 new InputFilter() {
    public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
        if(src.equals("")){ // for backspace
            return src;
        }
        if(src.toString().matches("[\\x00-\\x7F]+")){
            return src;
        }
        return "";
    }
 }
});

我只是简单地写了这段代码:return source.toString().matches("\\S") ? source : "";,它可以正常工作。其中的\S表示除空格(换行符、制表符、空格、硬空格)以外的任何字符。 - Dick Lucas
运行得非常顺畅!(Y) - Anuj Sharma
1
但是当您点击表情符号,然后再点击退格键时,当前文本将删除2个字符。 - HendraWD

0

如果这些链接失效了怎么办?学习如何使用SO。 - Neon Warge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接