2012-06-07 48 views
0

我想設置的AdMob在我listactivity頭到我的listactivity 我使用這個設置列表:AdMob來listactivity困惑我

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.listview, values); 

和(R.layout.listview)只有這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
style="@style/Font" 
android:gravity="right" > 
</TextView> 

它工作得很好,然後我說這個設置的AdMob:

adView = new AdView(this, AdSize.BANNER, "xxxxxxx"); 
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
layout.addView(adView); 
adView.loadAd(new AdRequest()); 

BU它給了我一個錯誤

我真的很困惑!

我想這設置的AdView作爲標題:

lv.addHeaderView(adView, null, false); 

,但它並不能幫助

請....任何幫助嗎?或一步一步的教程。

+0

什麼是您的活動包含列表視圖樣子的佈局?它是否具有ID爲'mainLayout'的LinearLayout? –

+0

不......它只有上面的文本視圖 – majed

回答

1

您遇到崩潰,因爲LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);正試圖在您的xml文件中找到一個ID爲mainLayout的LinearLayout元素,但它不存在。

在ListView中嵌入廣告有點複雜。您需要編寫自己的ListAdapter來支持廣告。您可以從這個AdMobListAdapter示例中大量獲取,該示例接受陣列適配器並每10個列表項嵌入一個廣告。使用上面的例子鏈接,調用代碼看起來像this(貼在下面供參考):

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.listview, values); 
AdMobListAdapter adMobAdapter = new AdMobListAdapter(this, arrayAdapter); 
setListAdapter(adMobAdapter); 
+0

爲什麼我不能使用像這樣的東西:lv.addHeaderView(adView,null,false); – majed

+0

什麼對象類型是'lv'?我沒有看到你在上面的代碼中的任何地方定義它? –

+0

ListView lv = getListView(); – majed