我有一个 ListView
,其中每一行有一个 EditText
控件。我希望向每一行添加一个 TextChangedListener
; 一个包含额外数据的 TextChangedListener
,这些数据说明 EditText
位于哪一行。问题是,当 getView
被调用时,会添加多个 TextWatchers
; 因为 convertView
已经有了一个 TextWatcher
(并且一个 TextWatcher
指向另一行)。
MyTextWatcher watcher = new MyTextWatcher(currentQuestion);
EditText text = (EditText)convertView.findViewById(R.id.responseText);
text.addTextChangedListener(watcher);
MyTextWatcher
是我的类,它实现 TextWatcher
; 并处理文本事件。Currentquestions 让我知道要对哪一行执行操作。当我在框中键入时,会调用多个 TextWatcher
实例。
在添加新的 TextWatchers
之前有什么方法可以删除 TextWatchers
吗?我看到了 removeTextChangedListener
方法,但是这需要传入一个特定的 TextWatcher
,我不知道如何获得指向已经存在的 TextWatcher
的指针。