我正在为我的Android应用使用AdMob。我想将一个AdView添加到扩展ListActivity的活动中。
我尝试过使用getListView().addHeaderView(my_ad_view)
,但这似乎不起作用。
知道怎么做到这一点?由于我对这个领域很陌生,任何帮助都将不胜感激。感谢。
这是我的代码:
此活动的开头如下:
public class Home extends ListActivity { /* Code */ }
onCreate()
功能:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the list items. The method populateList() reads the items from the database
// and returns a String array.
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, populateList()));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
goToTasks(String.valueOf(getListAdapter().getItem(position)));
}
});
lv.setCacheColorHint(0);
lv.setBackgroundResource(R.drawable.fmn_background_300);
registerForContextMenu(getListView());
refreshList();
// Here is the AdView code
AdView adView = new AdView(this, AdSize.BANNER, FMN.ADMOB_ID);
LinearLayout ll = (LinearLayout)findViewById(R.id.ll_admob);
ll.addView(adView);
getListView().addHeaderView(ll);
adView.loadAd(new AdRequest());
}
我设置了权限,并根据需要在Manifest中声明了活动。
在populateList()
方法中,我只获得了一个Cursor
,然后进行了一些操作工作,最后返回了一个String
数组。
那么我做错了什么?该应用程序只在加载此活动时退出。
答案 0 :(得分:2)
如果您希望添加视图始终可见(因此与列表视图无关),您可以使用如下布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/root">
<View /*Your View*/ android:layout_width="fill_parent"
android:layout_height="wrap_content"></View>
<ListView android:id="@+id/android:list" style="@style/CustomListView" />
</LinearLayout>
在这种情况下,您可以参考此视图并在那里添加自己的视图。
如果您希望将其与列表视图一起滚动,则应将其添加为标题,或将其作为自定义列表项添加(例如,如果position == 0则检入适配器,然后返回此AdView而不是另一个)
您是否还可以添加更多代码,以了解当前实施的确切问题?
BR, 迪米瑞斯