Получение текста левой части EditText с интервалами - PullRequest
0 голосов
/ 23 января 2020

Мое Android приложение имеет EditText в своем макете.

EditText может содержать текст с дополнительными ImageSpans.

В определенный момент пользователь может выполнить некоторое редактирование, то есть текст может быть отредактирован и / или интервалы могут быть удалены.

Я получаю позицию каретки с

 int caretPosition= editText.getSelectionStart();

Мне нужно знать, текст слева, без интервалов .

Я имею в виду, что если слева не присутствуют интервалы, то возвращаемый текст - это именно то, что ожидается, в то время как при наличии некоторых интервалов текст не имеет пробелов или других символов вместо интервалов.

Пример

aaaaaaaaaaa<span>bbbbbb<span>cccc_dddddd<span>eeeeee

здесь находится символ _ для позиции курсора (но у него нет пробела).

Моя цель - получить эту строку:

aaaaaaaaaaabbbbbbcccc

Это сложно, потому что кажется, что пролеты похожи на один символ, но я не уверен. И я не знаю, как разделить редактируемые итерации на левой части.

Как этого добиться?

1 Ответ

0 голосов
/ 24 января 2020

Я думаю, что это решение:

int caretPosition=editText.getSelectionStart();
Spannable spannable=editText.getText();
String leftPartWithoutSpans=spannable.subString(0,caretPosition).toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...