PagerAdapter - неверный индекс элемента при нажатии кнопки элемента - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть класс, который расширяет 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 голосов
/ 30 декабря 2018

Чтобы избежать этой проблемы, вместо создания глобальной переменной Button в этом классе адаптера, я создал экземпляр кнопки внутри instantiateItem ()

...