У меня есть ExpandableListview
, который является списком классов. Каждый класс - это расширяемая группа, которая содержит много строк учеников. Каждая строка ученика имеет поле EditText
, где пользователь может изменить какое-либо значение (например, возраст).
Я хочу добиться того, чтобы после изменения пользователем значения EditText age
я мог сделать что-то вроде сохранения в базе данных.
Итак, в getChildView
методе моего класса адаптера я реализовал так:
StudentTextWatcher oldWatcher =
(StudentTextWatcher) holder.age.getTag();
if (null != oldWatcher)
holder.age.removeTextChangedListener(oldWatcher);
StudentTextWatcher newWatcher =
new StudentTextWatcher();
holder.age.setTag(newWatcher);
holder.age.addTextChangedListener(newWatcher);
, где age
- это EditText.
Теперь, когда я пытаюсь щелкнуть по полю EditText
для ввода чего-либо, клавиатура выскакивает, но я не вижу никакого фокуса в EditText
. Я больше не могу печатать внутри. Я использую отладку, чтобы увидеть, что afterTextChanged
действительно запущен, но я не понимаю, почему нет фокуса.
И еще одна странная вещь - после того, как я добавил TextWatcher
для age
, когда я щелкаю поле EditText
из name
, я не могу сфокусироваться ни на одном, но с ним не связано TextWatcher
.
Заранее спасибо.