Я занимаюсь разработкой текстового редактора, расширяя класс EditText.пользователь может изменить цвет части текста, используя следующие шаги:
- пользователь выбирает часть текста и затем нажимает кнопку
- диалоговое окно выбора цветапоявляется и пользователь выбирает цвет
- Я получаю начало и конец выделения, используя this.getSelectionStart и this.getSelectionEnd
- наконец, я меняю цвет, используя следующий код:
spannableText.setSpan (новый ForegroundColorSpan (color), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
проблема заключается в том, что при появлении диалогового окна выбора цвета EditText автоматически отменяет выделение выделенного текста.поэтому методы getSelectionStart и getSelectionEnd возвращают неправильные значения.Я знаю, что я могу сохранить selectionStart и selectionEnd в переменных типа integer, прежде чем появится диалоговое окно.но это не подходит для моих кодов и делает мои коды неопрятными.Итак, мой вопрос:
Есть ли способ предотвратить автоматическое снятие выделения выделенного текста при появлении диалогового окна?
Примечание: я использую AppCompatDialog для создания цветадиалог выбора.