PagerAdapter-单击项目的按钮时,项目索引错误

时间:2018-12-29 15:52:20

标签: android android-pageradapter

我有一个扩展 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);
    }

因此,每当我单击某个项目上的按钮时,它都会更改另一个项目的按钮的可绘制对象。我没有提到的所有其他按钮也是如此。我单击按钮播放音频,但是它播放链接到其他项目的音频。

1 个答案:

答案 0 :(得分:0)

为避免此问题,我没有在此适配器类中创建全局Button变量,而是在 instantiateItem()

中创建了一个button实例。