2017-04-03 40 views
0

我试图把插页广告对我的浮动操作按钮插页广告,所以我就以下内容:穿上浮动操作按钮IST不工作

在我的MainActivity的OnCreate我写道:

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

     AdRequest adRequest = new AdRequest.Builder().build(); 

     mInterstitialAd = new InterstitialAd(MainActivity.this); 
     mInterstitialAd.setAdUnitId("My ID"); 
     mInterstitialAd.loadAd(adRequest); 


     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       displayInterstitial(); 
       Snackbar.make(view, "Danke für deine Unterstützung <3", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 

而且也是我写在MainActivity这个方法:

public void displayInterstitial() { 

     mInterstitialAd.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       super.onAdLoaded(); 
       if(mInterstitialAd.isLoaded()){ 
        mInterstitialAd.show(); 
       } 

      } 

      @Override 
      public void onAdClosed() { 
      } 
     }); 
    } 
} 

什么不对这个代码和为什么,如果我点击浮动操作按钮我的插页式广告不显示?

回答

0

在您的代码中,广告将在您创建AdListener对象之前加载。

您应该首先在onCreate()方法中设置监听器,并在点击按钮后调用mInterstitialAd.loadAd(adRequest)

更改您这样的代码:

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

    mInterstitialAd = new InterstitialAd(MainActivity.this); 
    mInterstitialAd.setAdUnitId("My ID"); 
    mInterstitialAd.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      super.onAdLoaded(); 
      if(mInterstitialAd.isLoaded()){ 
       mInterstitialAd.show(); 
      } 

     } 

     @Override 
     public void onAdClosed() { 
     } 
    }); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      displayInterstitial(); 
      Snackbar.make(view, "Danke für deine Unterstützung <3", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 

public void displayInterstitial() { 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    mInterstitialAd.loadAd(adRequest); 
} 

点击后只需等待几秒钟加载广告。

+0

在这种情况下,您是否可以毫无延迟地显示插页式广告? –

+0

是的,您可以在'onCreate()'预加载广告,然后点击按钮后,检查广告是否已经加载并显示。查看[link](https://firebase.google.com/docs/admob/android/interstitial#add_interstitial_ads_to_an_activity)查看示例 – mirekkomis