我有一个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
上没有任何焦点。我无法在里面输入内容。我使用debug看到afterTextChanged
确实被解雇了,但是我找不到为什么没有焦点。
另外一件奇怪的事情是,我为TextWatcher
添加了age
时,当我单击EditText
字段中的name
时,我既不能聚焦,也有没有与其关联的TextWatcher
。
谢谢。