В моей службе метода ввода я пытаюсь выбрать текст перед текущей позицией курсора. Ниже приведен фрагмент кодаВыбор с помощью Android IME
InputConnection inputConnection = getCurrentInputConnection();
ExtractedText extractedText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0);
inputConnection.setSelection(extractedText.selectionStart-1,extractedText.selectionEnd);
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.updateSelection(null, extractedText.selectionStart-1,extractedText.selectionEnd, 0, 0);
Это имеет очень слоеное поведение, иногда он выбирает, иногда это просто перемещает курсор на один шаг назад.
Может ли кто-нибудь указать, что я делаю неправильно?
Сложение:
Поскольку этот вопрос остается без ответа в течение некоторого времени, я хотел бы задать альтернативный вопрос. Я искал несколько альтернативных способов выбора текста и хакеров-клавиатуры, нажав на сдвиг, а затем клавиша со стрелкой делает трюк, но я не могу воспроизвести этот процесс. Я попытался отправить ключи d-pad вниз и вверх по ключевым событиям вместе с флагом meta_shift_on.
Но это не работает ... Опять же, что я делаю неправильно?