如何在android中的EditText中检测表情符号

Viv*_*har 6 android emoticons detect android-edittext

我想检测一下我是否EditText包含smilie(表情符号).但我不知道如何检测它们.

Pet*_*aňa 19

要在键盘上键入时禁用表情符号,我使用以下过滤器:

InputFilter filter = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            int type = Character.getType(source.charAt(i));
            //System.out.println("Type : " + type);
            if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
                return "";
            }
        }
        return null;
    }
};

mMessageEditText.setFilters(new InputFilter[]{filter});
Run Code Online (Sandbox Code Playgroud)

如果您只需要检测EditText是否包含任何表情符号字符,您可以Character.getType()android.text.TextWatcher接口实现(in onTextChange()afterTextChanged()方法)中使用此priciple(),或者例如使用方法使用简单for循环mMessageEditText.getText()(返回CharSequence类)charAt().

  • 这真的很有帮助。 (2认同)

小智 1

如果simile你指的是修辞格,你可以使用.getText()String方法.contains(String)来检查它是否包含字符串“like”或“as”。

片段:

EditText myEditText = (EditText)findViewById(R.id.myEditText);
String input = myEditText.getText();
if(input.contains("like") || input.contains("as"))
{
    //code
}
Run Code Online (Sandbox Code Playgroud)