2011-08-17 100 views
1

我有几个应用程序正在使用哪些使用常见的XML界面元素。其中一个元素加载AdMob。我可以在每个项目中复制元素,并将每个应用程序的唯一ID置于复制的XML文件中,但我想知道是否有某种方法可以通过编程方式从应用程序中设置ID字符串,同时保持XML而不必复制它在每个项目中。以编程方式设置AdMob ID字符串

一种近乎:

setContentView(R.layout.main); 
    AdView aView = (AdView)findViewById(R.id.admob); 
    aView.<method goes here that sets ads:adUnitId> 

我知道,而不是从XML实例AdMob,我能做到这一点编程,或者说我可以复制main.xml到每个项目并修改ID在那儿,而不是使用我的图书馆中的一个。但我会更喜欢一个类似于我的示例代码的解决方案,该解决方案允许我将AdMob代码保存在main.xml中,并且在更改时不会让我在n个位置更新main.xml

我一直无法找到AdMob附带的可交付成果的类参考或完整描述,并且自动完成并未显示任何似乎符合此需求的方法。如果有人给我指出一个对AdMob类有很好描述的地方,那将是一个很好的帮助。

回答

5

设置一个空的占位符视图(ListView的这个例子),用于AdView的在你的XML,然后以编程方式添加AdView的在Java中,是这样的:

ListView lv = (ListView)findViewById(R.id.adplaceholder); 

//create the AdView (replace MY_BANNER_UNIT_ID with the admob ID of your choice) 
AdView av = new AdView(this, AdSize.BANNER, MY_BANNER_UNIT_ID); 
lv.addView(av);//add the AdView to your layout 

AdRequest request = new AdRequest(); 
adView.loadAd(request); 
4

我下面

  1. 在您的库项目中,在string.xml中添加一个值为“”的元素,表示adUnitId。

    <string name="ad_unit_id"></string>` 
    
  2. 在布局插入带有

    ads:adUnitId="@string/ad_unit_id"` 
    
  3. AdView的在你的其他项目(S)在string.xml添加相同的元素与当前adUnitId设置

    <string name="ad_unit_id">XXXXXXXXXXXXXXXXX</string>` 
    

享受:)

+0

我做了同样的事情,它为我的第一个项目工作,但第二个没有。我不知道为什么 – Silentbang

+0

它总是提出警告“失败进入...在包...” – Silentbang

相关问题