Ответ 1
Я тоже очень старался для этого, но все же у меня не было правильного решения.
Вот еще один способ для него.
inputConnection.performContextMenuAction(android.R.id.selectAll);
CharSequence sData = inputConnection.getSelectedText(0);
Я написал 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!
Я тоже очень старался для этого, но все же у меня не было правильного решения.
Вот еще один способ для него.
inputConnection.performContextMenuAction(android.R.id.selectAll);
CharSequence sData = inputConnection.getSelectedText(0);
Мое решение - использовать getExtractedText(). Я не уверен, что это имеет некоторые ограничения, но я работал до сих пор.
CharSequence currentText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0).text;