我有一個應用程序。有課程。例如,我有這些類:從另一個類管理adView
-MainActivity.java
-AppName.java
-GameScreen.java
-GamePlayScreen.java
我在MainActivity做廣告編碼。 java如下,
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);
}
}
我有一個banne r頂部中心。這很好。 這裏是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();
}
}
一切都很好,我仍然有一面旗幟。但問題從這裏開始。在我的GameScreen中,有一個鏈接轉到GamePlayScreen,如下所示:
去GamePlayScreen沒有問題。
game.setScreen(new GamePlayScreen(game, i + 1));
現在我在玩遊戲。但我不想在這裏看到橫幅。
問題是,如何禁用我的AdView在GamePlayScreen中?我經歷過,如果你嘗試從另一個類中修改MainActivity.java,你會看到很好的例外。
感謝您的回答和評論。 我認爲這是一個很好的例子,希望將廣告整合到他們的應用中。
我在MainActivity.java中公開了靜態adView,正如您所說的,ca lled MainActivity.adView.setVisibility(View.GONE);在GamePlayScreen.java中。它說NullPointerException。我正在等待它,我試圖在GamePlayScreen中實例化MainActivity。我認爲我做不對。它說:「E/AndroidRuntime(26070):java.lang.RuntimeException:無法在未調用Looper.prepare()的線程中創建處理程序」 –
在對象所在的類中實例化adview- – sykal