Получить положение курсора на клавиатуре Android

Я работаю с программной клавиатурой Android, и мне интересно, есть ли способ для клавиатуры получить текущую позицию курсора? В настоящее время я использую следующий код:

connection.getTextBeforeCursor(Integer.MAX_VALUE, 0).length()

Однако это очень медленно (даже для небольшого количества текста это может занять до 50 мс — работает на Galaxy Nexus, так что, вероятно, это будет еще медленнее для нижнего уровня). телефоны). Я также протестировал его на Droid Incredible, и отставание еще более серьезное.

В функции onUpdateSelection вам предоставляется новая позиция курсора. Однако эта функция вызывается не всегда, и поэтому сохранение предоставленного ею значения для будущего использования ненадежно.

Поскольку вы можете установить позицию курсора и получить выделенный текст (но не позицию выделенного текста), не должна ли быть функция для получения позиции курсора?

Спасибо за помощь!

5
задан lrAndroid 13 March 2012 в 03:47
поделиться