【问题标题】:Show interstitial ads after click recyclerview item in fragment点击片段中的recyclerview项目后显示插页式广告
【发布时间】: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();
            }
        }
    }

【问题讨论】:

    标签: android admob


    【解决方案1】:

    你好,我有同样的问题,但我得到了它的解决方案完美!这里的代码只是添加到你的 recylerview onclick 方法中

     interstitial = new InterstitialAd(mCtx);
            interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
            AdRequest adRequest = new AdRequest.Builder().build();
            interstitial.loadAd(adRequest);
            interstitial.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    if (interstitial.isLoaded()) {
                        interstitial.show();
                    }
                }
            });
    

    【讨论】:

    • 哥们,永远不要发布你的keys,即使它们是你在网络上的测试密钥。
    【解决方案2】:

    你要做的是:

    1) 提取特定视图 onClickListener。我们就叫它listener吧。

    2) 创建一个您自己的实现View.OnClickListener 的类。

    3) 将提取的视图添加到您的类监听器。

    4) 将视图的 onClickListener 设置为您的类。

    5) 在你的类的 onClick 中执行你的逻辑,然后调用普通视图的点击事件。

    【讨论】:

    • 我知道这个愚蠢的要求,但你能发个代码吗?如果可行,我会申请你:)
    • 一旦我有时间我会做的,你必须在上面的一些步骤中使用java反射。请支持我的答案:)
    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多