onRewardedVideoAdLoaded
- это метод обратного вызова для асинхронной операции, поэтому вы не можете передавать ему значения в качестве аргументов, но использовать ссылочные переменные.
Для вашего случая сделайте следующее:
Сначала
Создайте глобальную переменную для хранения списка представлений, которые нужно скрыть
ArrayList<View> views_to_hide = new ArrayList<>();
Во-вторых
Создание вспомогательной функции для скрытия представлений
function hideViews(ArrayList<View> views){
for(View v : views) v.setVisibility(View.GONE);
}
В-третьих
Внутри onBindViewHolder
Добавьте в список представления, которые вы хотите скрыть под кнопкой onClick
public void onClick(View v) {
//...
if (mRewardedVideoAd.isLoaded()) {
mRewardedVideoAd.show();
// Ads already shown you may want to manually hide other images here
}else{
// We only need to add to list when ads not loaded
// We also want to make sure we don't add same view to the list twice
if(!views_to_hide.contains(holder.image))
views_to_hide.add(holder.image);
}});
//...
Наконец
Вызовите свою вспомогательную функцию внутри onRewardedVideoAdLoaded
@Override
public void onRewardedVideoAdLoaded() {
//This hides the views that was added to the list before now
hideViews(views_to_hide);
}