Каковы все, если еще условия для текста span - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь использовать все условия диапазона (если еще) для стилизации текста, но я всегда получаю сообщение об ошибке, так как 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;
          }
      }
...