Android 在片段中使用AdMob?
我已经开始开发一个新的应用程序,我决定通过v13支持包使用片段启动这个应用程序,这样我就可以构建一个同时进行手机和平板电脑设计的应用程序 如果我从XML文件中创建AdMob广告,我的AdMob广告就会在片段中工作,但是,如果我试图通过代码创建它们,我就会遇到问题Android 在片段中使用AdMob?,android,android-fragments,admob,Android,Android Fragments,Admob,我已经开始开发一个新的应用程序,我决定通过v13支持包使用片段启动这个应用程序,这样我就可以构建一个同时进行手机和平板电脑设计的应用程序 如果我从XML文件中创建AdMob广告,我的AdMob广告就会在片段中工作,但是,如果我试图通过代码创建它们,我就会遇到问题 public class Fragment_Admob extends Fragment implements AdListener { private static final String LOG_TAG = "Frag
public class Fragment_Admob extends Fragment implements AdListener
{
private static final String LOG_TAG = "Fragment_Admob";
private AdView adView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
return inflater.inflate(R.layout.admob_view, container, false);
// Create an ad.
adView = new AdView(this, AdSize.BANNER, "My_AdMob_Code");
...
}
...
}
Eclipse告诉我:
构造函数AdViewFragment_Admob、AdSize、String未定义
所以我觉得ok是有道理的,因为AdView期望的是一个活动,而不是一个片段。因此,我尝试让类扩展FragmentActivity而不是Fragment,从而解决了这个特殊问题。然而,现在我在运行时遇到了片段扩展问题,我以前也解决过这个问题,但我无法在这里解决,因为我真的认为我不应该在非活动代码集中使用FragmentActivity。我意识到我在片段中添加广告是完全错误的。相反,我让我的类扩展FragmentActivity,然后将我的布局设置为RelativeLayout,并在底部注入一个具有正确重力的新RelativeLayout,使其粘住。然后,碎片驻留在RelativeLayout内部,并相应地调整大小
public class MyClass extends FragmentActivity implements AdListener
{
// Create an ad.
adView = new AdView(this, AdSize.SMART_BANNER, "MY_ID");
// Set the AdListener.
adView.setAdListener(this);
// Add the AdView to the view hierarchy. The view will have no size until the ad is loaded.
RelativeLayout layout = (RelativeLayout) findViewById(R.id.home_layout);
RelativeLayout.LayoutParams adsParams =new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layout.addView(adView,adsParams);
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
// Start loading the ad in the background.
adView.loadAd(adRequest);
}
我意识到我试图在一个片段里放一个广告是完全错误的。相反,我让我的类扩展FragmentActivity,然后将我的布局设置为RelativeLayout,并在底部注入一个具有正确重力的新RelativeLayout,使其粘住。然后,碎片驻留在RelativeLayout内部,并相应地调整大小
public class MyClass extends FragmentActivity implements AdListener
{
// Create an ad.
adView = new AdView(this, AdSize.SMART_BANNER, "MY_ID");
// Set the AdListener.
adView.setAdListener(this);
// Add the AdView to the view hierarchy. The view will have no size until the ad is loaded.
RelativeLayout layout = (RelativeLayout) findViewById(R.id.home_layout);
RelativeLayout.LayoutParams adsParams =new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layout.addView(adView,adsParams);
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
// Start loading the ad in the background.
adView.loadAd(adRequest);
}