2016-11-08 1 views
0

Je suis un débutant quand il s'agit de développement Android. Ceci est ma première application. Je voudrais savoir comment afficher une annonce interstitielle Admob chaque fois que vous appuyez sur un bouton. J'ai réussi à afficher une annonce interstitielle, mais uniquement lors de la première pression sur le bouton. Toutefois, j'obtiens une erreur lorsque j'essaie de charger l'annonce. Voici mon code:Comment faire pour afficher Admob interstitiel à chaque fois qu'un bouton est pressé

package com.mycash.borgjake.mycash; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import android.widget.Button; 
import android.widget.TextView; 

import android.view.View; 

import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.android.gms.ads.InterstitialAd; 

import static com.mycash.borgjake.mycash.R.styleable.View; 

public class MainActivity extends AppCompatActivity { 

private InterstitialAd mInterstitial; 


Button btnClick; 
Button btnWithdraw; 

TextView txtBalance; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    AdView adView = (AdView)findViewById(R.id.adView); 
    AdRequest adRequest = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .build(); 
    adView.loadAd(adRequest); 

    btnClick = (Button) findViewById(R.id.button); 

    txtBalance = (TextView) findViewById(R.id.textView); 

    btnClick.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String countValue = txtBalance.getText().toString(); 
      int dblCountValue = Integer.parseInt(countValue); 

      if (mInterstitial.isLoaded()) { 
       mInterstitial.show(); 
      } 

      mInterstitial.loadAd(request); //<---ERROR 

      dblCountValue++; 
      txtBalance.setText(String.valueOf(dblCountValue)); 



     } 
    }); 

    mInterstitial = new InterstitialAd(this); 
    mInterstitial.setAdUnitId("ca-app-pub-2245289628812463/9905502438"); 
    AdRequest request = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .build(); 
    mInterstitial.loadAd(request); 

} 

public void onButtonClick(View v) { 
    if(v.getId() == R.id.button2) { 
     Intent i = new Intent(MainActivity.this, Withdraw.class); 
     startActivity(i); 
    } 
    } 
} 

Merci pour l'aide à l'avance. :)

+1

Quelle erreur obtenez-vous? – hering

Répondre

0

vous ne devez pas appeler cette fonction mInterstitial.loadAd(request); chaque fois

ou si vous voulez l'appeler appeler comme ça

mInterstitial.loadAd(request); 
    if (mInterstitial.isLoaded()) { 
        mInterstitial.show(); 
    } 

ou supprimer ce mInterstitial.loadAd(request); de chaque fois que vous cliquez sur le bouton.

+0

l'erreur que j'obtiens est, "Impossible de résoudre le symbole" Demande "". – user3704212

+0

c'est le code qui vous manque pour afficher l'annonce AdRequest adRequest = new AdRequest.Builder(). Build(); –

0

Juste Créer une fonction et l'appeler partout où vous en avez besoin:

public static void getAd(Context c) { 

     //================Ad-section 
     // Prepare the Interstitial Ad 
     interstitial = new InterstitialAd(c); 
     // Insert the Ad Unit ID 
     interstitial.setAdUnitId("ca-app-pub-YOUR/ID"); 

     // Request for Ads 
       AdRequest adRequest = new AdRequest.Builder() 
       .build(); 

       // Load ads into Interstitial Ads 
       interstitial.loadAd(adRequest); 

       interstitial.setAdListener(new AdListener() { 
        public void onAdLoaded() { 
         // Call displayInterstitial() function 
         displayInterstitial(); 
        } 
       }); 
      } 
      public static void displayInterstitial() { 
       // If Ads are loaded, show Interstitial else show nothing. 
       if (interstitial.isLoaded()) { 
        interstitial.show(); 
       } 
     //======================= 
    } 

Pour exécuter dans l'émulateur ou un périphérique de test Utilisez plutôt:

public static void getAd(Context c) { 

      //================Ad-section 
     // Prepare the Interstitial Ad 
     interstitial = new InterstitialAd(c); 
     // Insert the Ad Unit ID 
     interstitial.setAdUnitId("ca-app-pub-YOUR/ID"); 

     AdRequest request = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .build(); 
    mInterstitial.loadAd(request); 
} 

appel à la fonction :

getAd(getApplicationContext());