0

我正在使用 kotlin-android-extensions 将合成视图属性从我的布局导入到我的片段中。在我的onViewCreated()Fragment 方法中,我调用addTextChangedListener()EditText一个合成导入的视图。这在第一次实例化 Fragment 时工作正常,但下一次出现时,我的新侦听器将被添加到与上次调用相同的视图对象中。因此,现在这两个TextChangedListener对象都在文本更改时被触发,结果可想而知。据我所知,从 Fragment 首次出现的视图从未被取消引用。

这是我记录视图对象的输出,显示它是同一件事。

首次亮相:

AmountTextWatcher (com.redacted.util.AmountTextWatcher@36d1ccc) added to amount_edit_text: android.support.v7.widget.AppCompatEditText{79e2a VFED..CL. ......I. 0,0-0,0 #7f0f013a app:id/amount_edit_text}

第二次出场:

AmountTextWatcher (com.redacted.util.AmountTextWatcher@5812584) added to amount_edit_text: android.support.v7.widget.AppCompatEditText{79e2a VFED..CL. ......ID 0,0-434,200 #7f0f013a app:id/amount_edit_text}

当然,我可以通过使用findViewById()来访问我的视图而不是合成参考来解决这个问题,但我想知道是否有其他人遇到这个问题以及是否有更好的方法来处理它(除了不使用合成视图参考。)

仅供参考:使用 Kotlin 版本1.0.6

4

0 回答 0