Я пытаюсь использовать все условия диапазона (если еще) для стилизации текста, но я всегда получаю сообщение об ошибке, так как spanStart начинается до 0 и т. Д. Любой может предоставить мне, какие условия я должен проверить для придания стиля моему тексту редактирования. Вот мой код
Spannable str = texto.getText();
int selStart = texto.getSelectionStart();
int selEnd = texto.getSelectionEnd();
StyleSpan[] styleSpans = texto.getText().getSpans(selStart, selEnd, StyleSpan.class);
for (StyleSpan styleSpan : styleSpans) {
int oldStyle = styleSpan.getStyle();
int spanStart = str.getSpanStart(styleSpan);
int spanEnd = str.getSpanEnd(styleSpan);
if (spanStart < texto.getSelectionStart()) {
str.setSpan(new StyleSpan(oldStyle), spanStart, selStart, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (spanEnd > texto.getSelectionEnd()) {
str.setSpan(new StyleSpan(oldStyle), selEnd, spanEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (selEnd > selStart) {
if (oldStyle == Typeface.ITALIC) {
str.removeSpan(styleSpan);
italicExists = true;
}
if (oldStyle == Typeface.BOLD_ITALIC) {
str.setSpan(new StyleSpan(Typeface.BOLD), spanStart, spanEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
italicExists = false;
}
}