【发布时间】:2014-04-04 13:27:46
【问题描述】:
您好,我使用下面的代码在我的游戏中显示广告并且效果很好,但我在 GameActivity.java 中创建了这个横幅 (setContentView())。我有gameScene.java。我有时想隐藏这个横幅。那么如何从 gameScene.java 访问“adView”变量(位于 GameActivity.java 中)?
我有一个活动 GameActivity.java 和其他场景(gameScene、menuScene...)。 我想在我的菜单场景中显示横幅,但我也想在游戏场景中隐藏它。
@Override
@SuppressLint("NewApi")
protected void onSetContentView() {
super.onSetContentView();
final FrameLayout frameLayout = new FrameLayout(this);
final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT, Gravity.FILL);
final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.LEFT | Gravity.TOP);
adView = new AdView(this);
adView.setAdUnitId("XXXXXXXXXXXXXX");
adView.setAdSize(AdSize.BANNER);
adView.setVisibility(AdView.VISIBLE);
adView.refreshDrawableState();
AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
adView.loadAd(adRequest);
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1) {
adView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
this.mRenderSurfaceView = new RenderSurfaceView(this);
mRenderSurfaceView.setRenderer(mEngine, this);
final FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT);
surfaceViewLayoutParams.gravity = Gravity.CENTER;
frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
frameLayout.addView(adView, adViewLayoutParams);
this.setContentView(frameLayout, frameLayoutLayoutParams);
}
【问题讨论】:
-
您没有为我们提供足够的信息来回答这个问题。什么是GameScene、BaseScene?它们是如何创建的?为什么找不到 adView?
-
GameScene 是我的场景,用户在其中玩杀怪等 BaseScene 只是一个类,我所有的场景都在那里扩展,你可以找到一些方法,它们在所有场景中,例如 onBackKeyPressed() , createScene() , disposeScene() , onResume() 等。我找不到 adView,因为变量是在另一个 .java 文件 GameActivity 中创建的,它在 GameScene.java 中不可见,因为它在其他包中,我刚刚创建和实例再次获取变量和异常