【发布时间】:2021-12-20 06:48:40
【问题描述】:
我正在尝试在我的 android 应用程序中实现 admob 插页式广告...我正在尝试在 recyclerview 中实现广告,它在 onClick 中运行一次。无法再次使用 onClick 侦听器来打开新项目。
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
private Context mContext;
private List<Anime> mData ;
RequestOptions option;
private InterstitialAd mInterstitialAd;
public RecyclerViewAdapter(Context mContext, List<Anime> mData) {
this.mContext = mContext;
this.mData = mData;
MobileAds.initialize(mContext, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(mContext,"ca-app-pub-3940256099942544/1033173712", adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
mInterstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
mInterstitialAd = null;
}
});
// Request option for Glide
option = new RequestOptions().centerCrop().placeholder(R.drawable.loading_shape).error(R.drawable.loading_shape);
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view ;
LayoutInflater inflater = LayoutInflater.from(mContext);
view = inflater.inflate(R.layout.row_items,parent,false);
final MyViewHolder viewHolder = new MyViewHolder(view) ;
viewHolder.view_container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mInterstitialAd != null) {
mInterstitialAd.show((Activity) mContext);
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
Intent i = new Intent(mContext, WebViewActivity.class);
view.startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.clcik));
i.putExtra("action_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("puzzle_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("arcade_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("adventure_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("sports_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("racing_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
i.putExtra("zombie_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
mContext.startActivity(i);
CustomIntent.customType(mContext,"fadein-to-fadeout");
}
});
}
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Glide.with(mContext).load(mData.get(position).getWebsite_logo()).apply(option).into(holder.img_thumbnail);
}
@Override
public int getItemCount() {
return mData.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
ImageView img_thumbnail;
LinearLayout view_container;
public MyViewHolder(View itemView) {
super(itemView);
view_container = itemView.findViewById(R.id.container);
img_thumbnail = itemView.findViewById(R.id.thumbnail);
}
}
}
我想以专业的方式执行干净的广告。请帮助我完美地做到这一点。 提前致谢。
【问题讨论】:
标签: android android-studio android-recyclerview admob interstitial