Как проверить, есть ли на смайлике 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);
Другие вопросы по тегам