2016-09-15 22 views
0

広告が表示されません。 宣言したトーストが広告に表示されていないと常に言います。ここでFragmentActivityとAdmob広告が表示されませんか?

このオプションメニューは、カスタムalertdialogをロードする私のオプションメニュー に広告を表示するために私のボタンと、このalertdialogのボタンであり、あなたは、このボタンをクリックすると広告が表示さしかし必要があります。ここでは

は私のコードですしません:

  //Optionsmenü 
    public override bool OnPrepareOptionsMenu(IMenu menu) 
    { 
     MenuInflater.Inflate(Resource.Menu.profile_menu, menu); 
     RelativeLayout badgeLayout = (RelativeLayout)menu.FindItem(Resource.Id.diamonds).ActionView; 
     TextView mCounter = badgeLayout.FindViewById<TextView>(Resource.Id.diamondcounter); 
     mCounter.Text = diamonds; 
     Button startdiamonds = badgeLayout.FindViewById<Button>(Resource.Id.startdiamonds); 
     startdiamonds.Click += delegate 
     { 
      View content = LayoutInflater.Inflate(Resource.Layout.GetDiamond, null); 
      AlertDialog.Builder alert = new AlertDialog.Builder(this, Resource.Style.MyAlertDialogStyle); 
      alert.SetView(content); 
      ImageButton freegem = content.FindViewById<ImageButton>(Resource.Id.ButtonGemAd); 
      freegem.Click += delegate 
      { 
       //Interstitial Ad 
       mInterstitialAd = new InterstitialAd(this); 
       mInterstitialAd.AdUnitId = AD_UNIT_ID1; 
       mInterstitialAd.AdListener = new adlistener(this); 
       var adRequest = new AdRequest.Builder().Build(); 
       mInterstitialAd.LoadAd(adRequest); 
       if (mInterstitialAd.IsLoaded) 
       { 
        mInterstitialAd.Show(); 
       } 
       else 
       { 
        Toast.MakeText(this, "Ad not ready yet! Please wait a few seconds!", ToastLength.Long).Show(); 
       } 
      }; 
      alert.SetPositiveButton(" Cancle", (senderAlert, args) => { }); 
      Dialog dialog = alert.Create(); 
      dialog.Show(); 
     }; 

     return base.OnPrepareOptionsMenu(menu); 
    } 

そして、ここに私のAdAdpater:

//AdListener für AdClosed 
class adlistener : AdListener 
{ 
    private ProfileActivity profileActivity; 
    public delegate void AdLoadedEvent(); 
    public delegate void AdClosedEvent(); 
    public delegate void AdOpenedEvent(); 
    public event AdLoadedEvent AdLoaded; 
    public event AdClosedEvent AdClosed; 
    public event AdOpenedEvent AdOpened; 

    public adlistener(ProfileActivity profileActivity) 
    { 
     this.profileActivity = profileActivity; 
    } 

    public override void OnAdOpened() 
    { 
     if (AdOpened != null) this.AdOpened(); 
     base.OnAdOpened(); 
    } 

    public override void OnAdClosed() 
    { 
     if (AdClosed != null) this.AdClosed(); 
     base.OnAdClosed(); 

    } 

    public override void OnAdLoaded() 
    { 
     if (AdLoaded != null) this.AdLoaded(); 
     base.OnAdLoaded(); 

    } 
} 

はEDIT:

コードは完全に私は私のAndroidのマニフェストでこれを逃した作品:freegem.Clickで

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 
    <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 

答えて

0

変更コードの代わりにShowAdのLoadAdに+ =デリゲート ()あなたが呼び出すことが

interstitialAd.LoadAd(adRequest); 

ただし、いつでもLoadAdを使用するには、クリエイティブを表示する前にInterstitialAdのReceivedAdイベントが発生するまで待つ必要があります。 FailedToReceiveAdイベントが発生した場合は、正常にエラー状態を処理します。

広告が受信されたら、ShowAdメソッドを使用して広告を表示できます。インタースティシャルは、ユーザーが画面を閉じるまで画面を引き継ぎます。その時点でコントロールがアプリに戻ります。

private void OnAdReceived(object sender, AdEventArgs e) 
     { 
      System.Diagnostics.Debug.WriteLine("Ad received successfully"); 
      interstitialAd.ShowAd(); 
     } 
+0

doenst workでも同じエラーが発生します。 –

+0

コードを削除するif(mInterstitialAd.IsLoaded) { mInterstitialAd.Show(); } else { Toast.MakeText(この広告はまだ準備ができていません!数秒待ってください!、ToastLength.Long).Show(); }これをAdReceived –

+0

で上記のメソッドに移してください。私のコードでは動作しません: アンドロイドのmannifestで私の質問を更新しました –

関連する問題