Я работаю на мягкой клавиатуре Android и задаюсь вопросом, есть ли способ, чтобы клавиатура могла получить текущую позицию курсора? В настоящее время я использую следующий код:Получить позицию курсора Android Keyboard
connection.getTextBeforeCursor(Integer.MAX_VALUE, 0).length()
Однако это очень медленно (даже для небольшого количества текста, это может занять до 50 мс - работает на Galaxy Nexus, так что это, вероятно, будет даже медленнее для нижних телефонов). Я также тестировал его на Droid Incredible, и отставание еще более серьезное.
В функции onUpdateSelection вам предоставляется новая позиция курсора. Однако эта функция не всегда вызывается, и поэтому сохранение предоставленного ею значения для будущего использования не является надежным.
Поскольку вы можете установить позицию курсора и получить выделенный текст (но не позицию выбранного текста), не должна ли быть функция, чтобы получить позицию курсора?
Спасибо за помощь!
Похоже, что он работает над выбранным текстом. Кажется, что вопросы касаются только обычного курсора в тексте без выбора. Работает ли этот код в этом случае? –
Да, в этом случае selectStart и selectionEnd равны. –