Подсказки по правописанию дают избыточные значения с android.text.TextWatcher

Я использую интерфейс android.text.TextWatcherдля прослушивания изменений в EditText в одном из моих приложений. Я отслеживаю изменения, чтобы разрешить параметры отмены, используя функции beforeTextChanged() и onTextChanged().

Обычно изменения происходят по одному символу за раз, например, если пользователь вводит «привет», я получу следующие значения для начала, после и значения счетчика метода beforeTextChanged():

start = 0; count = 0; after = 1;      // typed 'h'
start = 1; count = 0; after = 1;      // typed 'e' 
start = 2; count = 0; after = 1;      // typed 'l'
start = 3; count = 0; after = 1;      // typed 'l'
start = 4; count = 0; after = 1;      // typed 'o'

Теперь, на ICS/Samsung Galaxy Nexus с активными предложениями по правописанию, когда я набираю тот же текст, слово подчеркивается в EditText до тех пор, пока я не вставлю пробел, и я получу следующие результаты:

start = 0; count = 0; after = 1;      // typed 'h'
start = 0; count = 1; after = 2;      // typed 'e'
start = 0; count = 2; after = 3;      // typed 'l'
start = 0; count = 3; after = 4;      // typed 'l'
start = 0; count = 4; after = 5;      // typed 'o'

Согласно документации, последнее поведение рассматривается как «пользователь набрал слово из 1 буквы, затем стер его и набрал слово из 2 букв, затем стер его и набрал слово из 3 букв и так далее…». И когда я выполняю отмену в EditText, я получаю «привет», «», «ад», «», «ад», «», «он», «», «ч», где я хочу только " Привет", "".

Есть ли способ предотвратить орфографические предложения, чтобы дать эти значения. ИМХО, это нарушение контракта, данного в документации метода.

Если нет, есть ли способ предотвратить предложение в моем тексте редактирования?

10
задан XGouchet 25 May 2012 в 07:42
поделиться