Android: InputConnection отсутствует метод getSelection()

Почему у меня есть setSelection в InputConnection, но не getSelection()?

Должен ли я просто сделать getTextBeforeCursor(VERY_HIGH_NUMBER, 0) и рассчитать .length() этой строки?

2 ответа

Я согласен, это глупо, что getSelection() не существует Ваше решение работает нормально, но вы должны предположить, что есть только курсор, а не весь выбранный диапазон текста. Я еще не понял, как заполнить эту дыру.

РЕДАКТИРОВАТЬ: О, конечно:

int selStart = ic.getTextBeforeCursor(HIGH_NUMBER, 0).length();
String sel = ic.getSelectedText(); 
int selEnd = selStart + (sel==null? 0: sel.length());

У меня была такая проблема. Я хотел реорганизовать ссылки на моиEditText и использовать InputConnectionтолько. Чтобы начать и закончить выделение, я использовалgetExtractedText(…) метод так:

    private static final ExtractedTextRequest request = new ExtractedTextRequest();
    private InputConnection ic;

// …

    ExtractedText extractedText = ic.getExtractedText(request, 0);
    int start = extractedText.selectionStart;
    int end = extractedText.selectionEnd;
Другие вопросы по тегам