我使用的是AdMob和Firebase的集成,因此我使用的是AdView,AdRequest和MobileAds等。我在AndroidLauncher中使用了它们,效果很好,但是当尝试实现一个名为AdsManager的接口并创建类型为AdView的变量时,它可以解决不了。我猜是因为我不在android模块中。那么,当我进入Core模块(MyGdxGame)时,如何从AndroidLauncher中获取“ AdMob类型”变量?
示例: Android模块
AdsManager
package com.game.mygame.monetization;
public interface AdsManager {
void showAds(boolean show);
}
Android启动器
public class AndroidLauncher extends AndroidApplication implements AdsManager {
private final String TAG = "AndroidLauncher";
private AdHandler adHandler; // Variable I want to reach from core module
static class AdHandler extends Handler {
private final int ADS_SHOW = 1;
private final int ADS_HIDE = 0;
private AdView adBanner; // Variable I want to reach from core module
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case ADS_SHOW:
adBanner.setVisibility(View.VISIBLE);
break;
case ADS_HIDE:
adBanner.setVisibility(View.GONE);
break;
}
}
}
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
RelativeLayout layout = new RelativeLayout(this);
View view = initializeForView(new MyGdxGame(this), config);
layout.addView(view);
implementAds();
requestAds(layout);
// Sets the background image
setContentView(layout);
}
public void implementAds() {
// Implement ads
MobileAds.initialize(this, "");
adHandler = new AdHandler();
adHandler.adBanner = new AdView(this);
adHandler.adBanner.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
Log.i(TAG, "Ad loaded ...");
}
});
尝试创建一个实现AdsManager的名为AndroidAdsManager的类时,它无法解析私有AdView变量,因为我猜想我不在android模块中了。
相关分类