У меня есть EditText
View, который редактируется setText()
из моего кода и пользователем через (мягкую/твердую) клавиатуру и, если возможно, с помощью речевого ввода. Я хочу обрабатывать ввод, сделанный моим кодом, по-другому, чем обычный пользовательский ввод: при входе пользователя происходит внутреннее событие. Но я не знаю, как отличить их обоих. Раньше - при разработке на эмуляторе я использовал метод onKeyDown()
, чтобы поймать пользовательский ввод. Однако при тестировании на реальном устройстве я узнал, что onKeyDown()
не запускается с мягкого ввода клавиатуры. Кроме того, речевой ввод не был бы признан этим, хотя я считаю, что это незначительный недостаток. Так что решение для меня не вариант.
С другой стороны, существует метод onTextChanged()
, но это срабатывает как с помощью setText()
, так и с клавиатуры. Итак, как я могу различать оба метода, или какой метод вызывается только пользователем, но не при использовании setText()
, поэтому я могу его переписать?