我有一个 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的指针。