单击四个按钮中的任何一个时显示插页式广告

Show interstitial ads when clicking on any of four buttons

我的布局有四个按钮。当用户点击其中一个按钮时,我想显示插页式广告。

当我点击四个按钮之一时,我的下面代码有效,但当我再次点击时,插页式广告不会显示。

例如:

BUTTON1BUTTON2BUTTON3BUTTON4

当我第一次点击 BUTTON1 时,会显示插页式广告;当我想再次点击其中一个按钮时(例如 BUTTON2),插页式广告根本没有显示。

如何让插页式广告在我每次点击按钮时显示?

InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(getString(R.string.interstitialAd));
    mInterstitialAd.loadAd(adRequest);
     btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mInterstitialAd.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }
            });
         //button 1 function
        }
    });
btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mInterstitialAd.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }
            });
         //button 2 function
        }
    });
btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mInterstitialAd.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }
            });
         //button 3 function
        }
    });
btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mInterstitialAd.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    }
                }
            });
         //button 4 function
        }
    });

显示 InterstitialAd 后,您应该请求一个新的 AdRequest:

因此,一种选择是在每个 ClickListener 中添加以下几行(不讨论如何提高质量...只是讨论如何修复它):

if (mInterstitialAd.isLoaded()) {
    mInterstitialAd.show();
    mInterstitialAd.loadRequest(new AdRequest.Builder().build());
}

能否请您测试并分享结果(您可能需要等到加载新广告后才能单击下一步按钮)。