2016-10-29 2 views
1

내 응용 프로그램 프로젝트에서 RecyclerViews을 사용하고 있으며 View이 재활용되면 분명히 청취자를 유지합니다.리사이클 된 뷰에서`OnClickListeners`을 어떻게 제거 할 수 있습니까?

나는 방법 onViewRecycled()

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

에서 리스너를 제거하기 위해 시도했지만 작동하지 않았다.

더 이상의 아이디어 ...?

+0

처음에 'OnClickListener'를 어디에 설정합니까? 위치에 따라 바뀌는'View' 속성은'onBindViewHolder()'메소드에서 설정되어야합니다. –

+0

@MikeM. 나는 onBindViewHolder() 메서드에서 설정하고 있습니다. –

+0

글쎄, 아마도'View'가'OnClickListener'를 다시 가지고있는 이유 일 겁니다. 재활용 된 후에 다시 사용할 준비가되기 위해'onBindViewHolder()'에 전달 될 것입니다. 그 방법으로 무조건 리스너를 설정하면 그 이유가됩니다. –

답변

0

귀하의 뷰 홀더에 onclicklisteners를 설정하십시오. 이렇게하면 청취자는 한 번만 설정됩니다. viewholder에서 어댑터 위치를 얻습니다.

관련 문제