【发布时间】:2019-01-13 22:54:44
【问题描述】:
我有一个自定义的 recyclerview,其中有很多意图去片段中的新活动。这个概念是这样的,当用户点击recyclerview上的项目时,我想在新活动出现之前显示一个插页式广告。然后如果用户关闭广告或广告加载失败,它会自动关闭广告并出现下一个活动..怎么做?
记住,我使用的是片段而不是活动。
这是我目前的代码
public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.ViewHolder> {
public static class ViewHolder extends RecyclerView.ViewHolder {
private InterstitialAd interstitialAd;
private TextView homeTitle, homeDesc;
ImageView homeImage;
private Context context;
public ViewHolder(View itemView) {
super(itemView);
createInterstitial();
context = itemView.getContext();
homeTitle = (TextView)itemView.findViewById(R.id.homeTitle);
homeDesc = (TextView)itemView.findViewById(R.id.homeDesc);
homeImage = (ImageView)itemView.findViewById(R.id.homeImage);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent intent;
switch (getAdapterPosition()) {
case 0:
showInterstitial();
intent = new Intent(context, AllBlock.class);
break;
case 1:
showInterstitial();
intent = new Intent(context, BasicBlock.class);
break;
default:
intent = new Intent(context, AllBlock.class);
break;
}
context.startActivity(intent);
}
});
}
public void createInterstitial() {
interstitialAd = new InterstitialAd(context);
interstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
}
@Override
public void onAdClosed() {
loadInterstitial();
}
});
}
public void loadInterstitial() {
AdRequest interstitialRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(interstitialRequest);
}
public void showInterstitial() {
if (interstitialAd.isLoaded()) {
interstitialAd.show();
} else {
loadInterstitial();
}
}
}
【问题讨论】: