我有一个扩展 PagerAdapter 的类。因此,我已经覆盖了此功能:
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
final View view;
view = mLayoutInflater.inflate(R.layout.item, container, false);
setFavButton(view, list.get(position));
container.addView(view);
return view;
}
private void setFavButton(View view, Word word) {
btn_like = view.findViewById(R.id.btn_like);
btn_like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toggleFavButton(btn_like);
}
});
}
private void toggleFavButton(Button btn_like){
btn_like.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_like_red, 0, 0, 0);
}
因此,每当我单击某个项目上的按钮时,它都会更改另一个项目的按钮的可绘制对象。我没有提到的所有其他按钮也是如此。我单击按钮播放音频,但是它播放链接到其他项目的音频。
答案 0 :(得分:0)
为避免此问题,我没有在此适配器类中创建全局Button变量,而是在 instantiateItem()
中创建了一个button实例。