2017-03-13 1 views
0

Je suis un débutant en Java. J'avais des jeux Android que j'ouvrais sur Eclipse et Android Studio. Lorsque je veux ajouter la classe MainActivity qui ne contient pas la méthode onCreate en tant que classes normales des jeux Exemple: Pause - Menu ..., toujours l'objet courant new InterstitialAd (this); Est souligné par la couleur rouge.comment ajouter interstitiel AdMob hors MainActivity dans autre classe sans la méthode onCreate?

Puis-je obtenir de l'aide, s'il vous plaît? Voici toutes les données à apporter à mon code source.

//Class PauseLayer : 

import com.exemplapp.myapptetest.RacingActivity; 
import com.exemplapp.myapptetest.scene.GameScene; 
import com.exemplapp.myapptetest.scene.TitleScene; 
import com.exemplapp.nodes.GrowButton; 
import com.exemplapp.nodes.MyScene; 
import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.InterstitialAd; 
import org.cocos2d.nodes.CCDirector; 
import org.cocos2d.nodes.CCSprite; 
import org.cocos2d.transitions.CCFadeTransition; 

public class PauseLayer extends MyScene { 

    private InterstitialAd interstitial; 

    public PauseLayer() { 
     super(); 
     RacingActivity activity = (RacingActivity) CCDirector.sharedDirector().getActivity(); 
     activity.revmob(); 

     CCSprite sprBg = CCSprite.sprite(PATH_BG + "pause_bg-ipad.png"); 
     this.addChild(sprBg); 
     sprBg.setPosition(SCREEN_WIDTH/2, SCREEN_HEIGHT/2); 

     GrowButton btnResume = GrowButton.buttonWithSpriteFileName(PATH_BTN 
       + "btnResume-ipad.png", PATH_BTN + "btnResume-ipad.png", 
       this, "onResume"); 
     this.addChild(btnResume); 
     btnResume.setPosition(SCREEN_WIDTH/2, 260 * 32/15); 

     GrowButton btnReplay = GrowButton.buttonWithSpriteFileName(PATH_BTN 
       + "btnReplay-ipad.png", PATH_BTN + "btnReplay-ipad.png", 
       this, "onReplay"); 
     this.addChild(btnReplay); 
     btnReplay.setPosition(SCREEN_WIDTH/2, 220 * 32/15); 

     GrowButton btnMenu = GrowButton.buttonWithSpriteFileName(PATH_BTN 
       + "btnMenu1-ipad.png", PATH_BTN + "btnMenu1-ipad.png", this, 
       "onMenu"); 
     this.addChild(btnMenu); 
     btnMenu.setPosition(SCREEN_WIDTH/2, 180 * 32/15); 


//Admon Interstitial 

     interstitial = new InterstitialAd(this); 

     interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     interstitial.loadAd(adRequest); 

     interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       displayInterstitial(); 
      } 
     }); 


    } 

    private void displayInterstitial() { 
     if (interstitial.isLoaded()) { 
      interstitial.show(); 
     } 
    } 


    public void onResume(Object sender) { 
     this.removeFromParentAndCleanup(true); 
    } 

    public void onReplay(Object sender) { 
     CCDirector 
       .sharedDirector() 
       .replaceScene(
         CCFadeTransition.transition(0.7f, GameScene 
           .scene(GameScene.sharedInstance().m_nGameMode))); 
    } 

    public void onMenu(Object sender) { 
     CCDirector.sharedDirector().replaceScene(
       CCFadeTransition.transition(0.7f, TitleScene.scene())); 
    } 
} 

//Certificate of AndroidManifest : 

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name="com.exemplapp.myapptetest.RacingActivity" 
      android:label="@string/title_activity_sling_shot_racing" 
      android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.exemplapp.myapptetest.scene.game.PauseLayer" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 
     <activity 
      android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      android:theme="@android:style/Theme.Translucent" /> 

    </application> 

Répondre

0

Méthode d'annonces interstitielles dans un contexte de passage ou une activité de création d'objet.

qui signifie que nous pouvons passer alors le contexte ou l'activité

vous pouvez écrire comme ce

interstitial = new InterstitialAd(activity); 

où l'activité est RacingActivity qui a été déclarer ci-dessus regard de code final comme

public PauseLayer() { 
    super(); 
    RacingActivity activity = (RacingActivity) CCDirector.sharedDirector().getActivity(); 
    activity.revmob(); 

    CCSprite sprBg = CCSprite.sprite(PATH_BG + "pause_bg-ipad.png"); 
    this.addChild(sprBg); 
    sprBg.setPosition(SCREEN_WIDTH/2, SCREEN_HEIGHT/2); 

    GrowButton btnResume = GrowButton.buttonWithSpriteFileName(PATH_BTN 
      + "btnResume-ipad.png", PATH_BTN + "btnResume-ipad.png", 
      this, "onResume"); 
    this.addChild(btnResume); 
    btnResume.setPosition(SCREEN_WIDTH/2, 260 * 32/15); 

    GrowButton btnReplay = GrowButton.buttonWithSpriteFileName(PATH_BTN 
      + "btnReplay-ipad.png", PATH_BTN + "btnReplay-ipad.png", 
      this, "onReplay"); 
    this.addChild(btnReplay); 
    btnReplay.setPosition(SCREEN_WIDTH/2, 220 * 32/15); 

    GrowButton btnMenu = GrowButton.buttonWithSpriteFileName(PATH_BTN 
      + "btnMenu1-ipad.png", PATH_BTN + "btnMenu1-ipad.png", this, 
      "onMenu"); 
    this.addChild(btnMenu); 
    btnMenu.setPosition(SCREEN_WIDTH/2, 180 * 32/15); 


    //Admon Interstitial 

    interstitial = new InterstitialAd(activity); 

    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    interstitial.loadAd(adRequest); 

    interstitial.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      displayInterstitial(); 
     } 
    }); 


} 
+0

oui Merci pour la réponse, j'ai changé (ceci); avec (activité); mais le bouton Jeu Pause ne fonctionne plus. quelle est votre idée? – yaszin

+0

vous pouvez essayer de débogage pour regarder ce qui peut arriver, il peut aider https://developer.android.com/studio/debug/index.html – vishal

+0

tout ce que je cherche dans tous les lieux officiels, mais pas la solution. la Pub de Revmob et Applovin ils fonctionnent bien mais Admob pas. aussi je suis supprimer tous les certificats et le contenu de Applovin et Revmob, mais pas de solution aussi. – yaszin