Подтвердить что ты не робот

Лучший способ получить весь текст в EditText из InputConnection?

Я написал IME (InputMethodService), и мне нужно получить весь текст из EditText, который он редактирует. Я знаю один способ:

InputConnection inputConnection = getCurrentInputConnection();
inputConnection.append(inputConnection.getTextBeforeCursor(9999, 0))
.append(inputConnection.getTextAfterCursor(9999, 0));

Это работает, но кажется довольно глупым и неуклюжим. Однако нет такого метода InputConnection.getText().

Есть ли лучший способ?

P.S. Я не могу получить доступ к EditText из моего IME, потому что он принадлежит родительскому приложению, поэтому, пожалуйста, не говорите мне использовать EditText.getText(), если вы не знаете способ получить EditText!

4b9b3361

Ответ 1

Я тоже очень старался для этого, но все же у меня не было правильного решения.

Вот еще один способ для него.

inputConnection.performContextMenuAction(android.R.id.selectAll);
CharSequence sData =  inputConnection.getSelectedText(0);

Ответ 2

Мое решение - использовать getExtractedText(). Я не уверен, что это имеет некоторые ограничения, но я работал до сих пор.

CharSequence currentText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0).text;