EditText автоматически отменяет выделение текста, когда появляется диалоговое окно - PullRequest
0 голосов
/ 28 сентября 2019

Я занимаюсь разработкой текстового редактора, расширяя класс EditText.пользователь может изменить цвет части текста, используя следующие шаги:

  1. пользователь выбирает часть текста и затем нажимает кнопку
  2. диалоговое окно выбора цветапоявляется и пользователь выбирает цвет
  3. Я получаю начало и конец выделения, используя this.getSelectionStart и this.getSelectionEnd
  4. наконец, я меняю цвет, используя следующий код:
    spannableText.setSpan (новый ForegroundColorSpan (color), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

проблема заключается в том, что при появлении диалогового окна выбора цвета EditText автоматически отменяет выделение выделенного текста.поэтому методы getSelectionStart и getSelectionEnd возвращают неправильные значения.Я знаю, что я могу сохранить selectionStart и selectionEnd в переменных типа integer, прежде чем появится диалоговое окно.но это не подходит для моих кодов и делает мои коды неопрятными.Итак, мой вопрос:

Есть ли способ предотвратить автоматическое снятие выделения выделенного текста при появлении диалогового окна?

Примечание: я использую AppCompatDialog для создания цветадиалог выбора.

...