J'ai une application. Il y a des classes. Par exemple, j'ai ces classes:Gestion d'adView à partir d'une autre classe
-MainActivity.java
-AppName.java
-GameScreen.java
-GamePlayScreen.java
J'ai codé en font la publicité MainActivity. java comme suit,
public class MainActivity extends AndroidApplication
{
protected AdView adView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout layout = new RelativeLayout(this);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
View gameView = initializeForView(new AppName(), cfg);
AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxxxxxx");
AdRequest request = new AdRequest();
request.addTestDevice("xxxxxxxxxxxxxxxx");
adView.loadAd(request);
layout.addView(gameView);
RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
layout.addView(adView, adParams);
setContentView(layout);
}
}
J'ai un banne r centre supérieur. C'est bon. Voici AppName.java:
public class AppName extends Game
{
@Override
public void create()
{
Assets.load();
setScreen(new GameScreen(this, Settings.STATE_START));
}
@Override
public void resize(int width, int height)
{
super.resize(width, height);
}
@Override
public void pause()
{
}
@Override
public void resume()
{
}
@Override
public void dispose()
{
Assets.dispose();
getScreen().dispose();
}
}
Tout va bien j'ai encore une bannière. Mais le problème commence ici. Dans mon GameScreen, il y a un lien qui va à GamePlayScreen comme:
Il va à GamePlayScreen il n'y a pas de problème.
game.setScreen(new GamePlayScreen(game, i + 1));
Maintenant, je suis dans le jeu. Mais je ne veux pas voir la bannière ici. La question est, comment puis-je désactiver mon adView dans GamePlayScreen? J'ai expérimenté cela si vous essayez de modifier MainActivity.java d'une autre classe, vous voyez de très bonnes exceptions.
Merci pour vos réponses et commentaires. Et je pense que c'est un bon exemple pour les personnes qui veulent intégrer la publicité dans leurs applications.
je l'ai fait public adView statique dans MainActivity.java comme vous l'avez dit, et ca lité MainActivity.adView.setVisibility (View.GONE); dans GamePlayScreen.java. Il dit NullPointerException. Je l'attendais, j'ai essayé d'instancier le MainActivity dans le GamePlayScreen. Je pense que je ne pouvais pas le faire correctement. Il dit "E/AndroidRuntime (26070): java.lang.RuntimeException: Impossible de créer un gestionnaire à l'intérieur du thread qui n'a pas appelé Looper.prepare()" –
instancier l'adview dans la classe où l'objet se trouve- – sykal