Android Admob多按钮点击上的间隙广告

Android Admob多按钮点击上的间隙广告,android,admob,Android,Admob,我有一个有10个按钮的活动,每个按钮指向不同的活动。当我在点击按钮时添加间隙广告时,效果很好,但当用户关闭广告时,它总是带他去活动(主题)。无论他点击什么按钮,它总是带他去活动(主题十) 我想要的是,当用户点击活动按钮(topic_-one)时,它会将用户带到活动(topic_-one),依此类推 private InterstitialAd interstitialAd; @Override protected void onCreate(Bundle savedInstanceState

我有一个有10个按钮的活动,每个按钮指向不同的活动。当我在点击按钮时添加间隙广告时,效果很好,但当用户关闭广告时,它总是带他去活动(主题)。无论他点击什么按钮,它总是带他去活动(主题十)

我想要的是,当用户点击活动按钮(topic_-one)时,它会将用户带到活动(topic_-one),依此类推

private InterstitialAd interstitialAd;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_topics_list);

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("ca-app-pub-1164579427694627/2090370128");
    interstitialAd.loadAd(new AdRequest.Builder().build());



    bt2 = (Button) findViewById(R.id.button2);

    bt2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (interstitialAd.isLoaded()){

                interstitialAd.show();
            }

            else {

                startActivity(new Intent(topics_list.this, topic_one.class));

            }
        }
    });
    interstitialAd.setAdListener(new AdListener(){

        @Override
        public void onAdClosed() {
            startActivity(new Intent(topics_list.this, topic_two.class));
            interstitialAd.loadAd(new AdRequest.Builder().build());
        }
    });
    bt3 = (Button) findViewById(R.id.button3);

    bt3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (interstitialAd.isLoaded()){

                interstitialAd.show();
            }

            else {

                startActivity(new Intent(topics_list.this, topic_two.class));

            }
        }
    });
    interstitialAd.setAdListener(new AdListener(){

        @Override
        public void onAdClosed() {
            startActivity(new Intent(topics_list.this, topic_three.class));
            interstitialAd.loadAd(new AdRequest.Builder().build());
        }
    });
试试这个方法

interstitialAd1 = new InterstitialAd(this);
interstitialAd1.setAdUnitId("ca-app-pub-1164579427694627/2090370128");
interstitialAd1.loadAd(new AdRequest.Builder().build());

interstitialAd2 = new InterstitialAd(this);
interstitialAd2.setAdUnitId("ca-app-pub-1164579427694627/2090370128");
interstitialAd2.loadAd(new AdRequest.Builder().build());


bt1 = (Button) findViewById(R.id.button1);
bt1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) 
    {

        if (interstitialAd1.isLoaded())
            {

                interstitialAd1.show();
            }

        else 
            {

                startActivity(new Intent(topics_list.this, topic_one.class));

            }
        }
    });

interstitialAd1.setAdListener(new AdListener(){

    @Override
    public void onAdClosed() {
        interstitialAd1.loadAd(new AdRequest.Builder().build());
        startActivity(new Intent(topics_list.this, topic_one.class));

    }

});


bt2 = (Button) findViewById(R.id.button1);
bt2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        if (interstitialAd2.isLoaded()){

            interstitialAd2.show();
        }

        else {

            startActivity(new Intent(topics_list.this, topic_two.class));

        }
    }
});
interstitialAd2.setAdListener(new AdListener(){

    @Override
    public void onAdClosed() {
        interstitialAd2.loadAd(new AdRequest.Builder().build());
        startActivity(new Intent(topics_list.this, topic_two.class));

    }

});

我刚刚创建了两个具有相同ad单元id的Interstitual。将其与setonclicklistener和adlistener一起使用,以在ads关闭时控制流

您可以使用enum方法处理多次单击,以便在单击时加载不同的活动。您只需要实现一个中间添加。您必须声明枚举列表以标识每个活动

private InterstitialAd mInterstitialAd;    
ActivityType activityType;
public enum ActivityType {
    DRINKLOG, DRINKREPORT,WEIGHTREPORT
}
当您为按钮实现click listener时,您只需检查是否加载了add

fabDrink.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mInterstitialAd.isLoaded()) {
                activityType = ActivityType.DRINKLOG;
                mInterstitialAd.show();
                Timber.e("Loading" + "second");
            } else {
                Intent intent = new Intent(MainActivity.this, YourActivity1.class);
                startActivity(intent);
            }
        }
    });
要初始化中间添加,请创建一个具有键和侦听器的方法

mInterstitialAd = newInterstitial();
private InterstitialAd newInterstitial() {
    InterstitialAd interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(getString(R.string.interstitial_ad_id));
    interstitialAd.loadAd(new AdRequest.Builder().build());


    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            mInterstitialAd = newInterstitial();
            switch (activityType) {
                case DRINKLOG:
                    Intent intent = new Intent(MainActivity.this, YourActivity1.class);
                    startActivity(intent);
                    break;

                case DRINKREPORT:
                    Intent activity2= new Intent(MainActivity.this, YourActivity2.class);
                    startActivity(activity2);
                    break;

                case WEIGHTREPORT:
                    Intent activity3= new Intent(MainActivity.this, YourActivity3.class);
                    startActivity(activity3);
                    break;

            }
        }
    });
    return interstitialAd;
}

interstitalad…listener….
是否需要封装在上面的块中?我使用的是android studioI,我不知道是否需要封装。