Android:在BaseExpandableListAdapter中使用TextWatcher后,用户无法专注于EditText

时间:2019-07-04 09:54:55

标签: android textwatcher

我有一个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

谢谢。

0 个答案:

没有答案