Как вызвать Interstitial, нажав на элемент в списке, который проходит через адаптер?

1

Мне нужно вызвать Interstitial в этом действии, нажав на элемент в списке, который получен из моего адаптера.

public class SoundRecyclerAdapter extends RecyclerView.Adapter<SoundRecyclerAdapter.SoundViewHolder> {
    private final ArrayList<SoundObject> soundObjects;

    SoundRecyclerAdapter(ArrayList<SoundObject> soundObjects) {
        this.soundObjects = soundObjects;
    }

    @NonNull
    @Override
    public SoundViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.sound_item, parent, false);
        return new SoundViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull SoundViewHolder holder, int position) {
        final SoundObject object = soundObjects.get(position);
        final Integer soundID = object.getItemID();

        holder.itemTextView.setText(object.getItemName());
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // I tried calling the interstitial here, but to no avail
                EventHandlerClass.startMediaPlayer(v, soundID);
            }
        });

        // Handle actions when the user presses a sound button
        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                EventHandlerClass.popupManager(v, object);
                return true;
            }
        });
    }

    @Override
    public int getItemCount() {
        return soundObjects.size();
    }

    class SoundViewHolder extends RecyclerView.ViewHolder {
        final TextView itemTextView;

        SoundViewHolder(View itemView) {
            super(itemView);
            itemTextView = itemView.findViewById(R.id.textViewItem);
        }
    }
}
Теги:

2 ответа

0

Используйте этот код в setOnClickListener():

mInterstitialAd = new InterstitialAd(SoundRecyclerAdapter.this);

Затем добавьте объявления и загрузите объявление.

  • 0
    Спасибо за помощь, но реализация S-Sh сработала отлично!
  • 0
    Это та же самая работа, выполненная двумя разными способами. Я сделал с меньшим количеством кода.
0

Передать контекст в качестве параметра конструктора адаптера:

private Context context;

SoundRecyclerAdapter(Context context, ArrayList<SoundObject> soundObjects) {
    this.soundObjects = soundObjects;
    this.context = context;
}

и использовать его в обработчике кликов

  • 0
    Я сделал реализацию на адаптере. Однако в MainActiviy возникла еще одна проблема. Я получаю сообщение об ошибке в «soundList», предлагая мои варианты: создать конструктор или удалить параметрикс из SoundRecyclerAdapter. приватный финал SoundRecyclerAdapter SoundAdapter = новый SoundRecyclerAdapter (soundList);
  • 0
    Замените создание экземпляра на SoundAdapter = new SoundRecyclerAdapter(this, soundList);
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню