2016-10-29 11 views
1

私のアプリプロジェクトでRecyclerViewsを使用していて、明らかにViewがリサイクルされると、彼らはリスナーを保持します。リサイクルされたビューから `OnClickListeners`を削除するにはどうすればいいですか?

私は方法onViewRecycled()

@Override 
public void onViewRecycled(MyViewHolder holder) { 
    super.onViewRecycled(holder); 
    holder.imageId.setOnClickListener(null); 
} 

でリスナーを削除しようとしましたが、うまくいきませんでした。

これ以上のアイデア...?

+0

最初に 'OnClickListener'をどこに設定していますか? 'onBindViewHolder()'メソッドでは、位置に応じて変化する 'View'プロパティを設定する必要があります。 –

+0

@MikeM。私はonBindViewHolder()メソッドで設定しています。 –

+0

これはおそらく、あなたの 'View'が再び' OnClickListener'を持っている理由でしょう。それがリサイクルされた後、 'onBindViewHolder()'に渡され、再び使用できる状態になります。その方法で無条件にリスナーを設定すると、それが原因です。 –

答えて

0

ビュー所有者のオンクリックリスナーを設定します。この方法では、リスナーは1回だけ設定されます。ビューホルダーにアダプターの位置を取得します。

関連する問題