Как проверить, есть ли на смайлике EditText в Android смайлик или нет?
Мне нужно проверить, есть ли в редактируемом тексте смайлик или нет. Я попытался создать средство просмотра текста, в котором я проверял наличие диапазона изображений, но я не смог получить никаких результатов.
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 ответа
Сделать проверку в 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) {
}
};
Вы должны взять hasmap с кодом смайликов в качестве ключа и изображение смайлика в качестве значения. Теперь проверьте текст, если это код смайликов, если да, то
s.setSpan(new ImageSpan(Context, Emoticons_Image, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);