将AdView添加到扩展ListActivity的类中

时间:2011-08-28 09:10:41

标签: java android listview admob listactivity

我正在为我的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数组。

那么我做错了什么?该应用程序只在加载此活动时退出。

1 个答案:

答案 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, 迪米瑞斯