如何检查Android中的EditText是否含有表情符号?

6

我需要检查一个编辑文本框是否有表情符号。我尝试创建一个文本监视器,在其中检查是否存在图像跨度,但是我无法获得任何结果。

SpannableStringBuilder s = new SpannableStringBuilder(source.toString());
ImageSpan a[]= s.getSpans(0,s.length(), ImageSpan.class);

if(a.length!=0){
    Toast.makeText(NewEpisodeActivity.this, R.string.invalid_char, Toast.LENGTH_SHORT).show();
    return "";
}
2个回答

1

请在afterTextChanged(Editable editable)中检查,而不是在onTextChanged()中进行。

private TextWatcher textChangedListener = new TextWatcher() {

    @Override
    public void afterTextChanged(Editable editable) {
        final ImageSpan[] itemSpans = editable.getSpans(0, editable.length(), ImageSpan.class);
        final boolean hasEmoticons = itemSpans != null && itemSpans.length > 0;
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

};

0
你应该使用哈希映射,以表情代码作为键,以表情图片作为值。 现在检查文本是否是表情代码,如果是,则
s.setSpan(new ImageSpan(Context, Emoticons_Image, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

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