我需要检查编辑文本中是否有一些表情符号。我尝试制作一个文本观察器,在其中检查是否存在图像跨度,但我无法获得任何结果。
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 "";
}
答案 0 :(得分:0)
你应该将带有表情符号代码的hashmap作为键和表情符号图像作为值。 现在检查文本是否是表情符号代码,如果是,那么
s.setSpan(new ImageSpan(Context, Emoticons_Image, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
答案 1 :(得分:0)
登记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) {
}
};