java - 将 AdView 添加到扩展 ListActivity 的类

标签 java android listview admob listactivity

我正在为我的 Android 应用程序使用 AdMob。我想将 AdView 添加到扩展 ListActivity 的 Activity。

我试过使用 getListView().addHeaderView(my_ad_view) 但这似乎不起作用。

知道如何实现吗?由于我是这个领域的新手,我们将不胜感激任何帮助。谢谢。

这是我的代码:

这个 Activity 的开始是这样的:

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());
}

我已设置权限并已根据需要在 list 中声明 Activity 。

populateList()方法中,我只得到了一个Cursor,然后做了一些操作,最后返回了一个String数组。

那我做错了什么?加载此 Activity 时,应用程序将退出。

最佳答案

如果您希望添加 View 始终可见(因此与 ListView 无关),您可以采用如下布局:

<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>

在这种情况下,您将获得对该 View 的引用,并在那里添加您自己的 View 。

如果你想让它与你的 ListView 一起滚动,你应该添加为标题,或者将它作为自定义列表项(即检查你的适配器,如果 position==0 然后返回这个 AdView 而不是另一个) .

您能否再添加一些代码,以便了解您当前实现的确切问题是什么?

BR, 季米特里斯

关于java - 将 AdView 添加到扩展 ListActivity 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220008/

相关文章:

java - 使用 Jersey deps 将应用程序打包到 jar 中时出现问题

java - RAM 内存重新分配 - Windows 和 Linux

java - 使用 jOrtho 拼写检查器

android - Realm for Android – RealmResult.sort() 进行基于字符串的排序?

android - 调用 startActivityForResult() 时出现空指针异常

java - 如何使用 s3 select 从 Parquet 文件中获取所有列的列表?

android - Android中两个日期之间的天数

android - onContextItemSelected 未在 Fragment 中调用

android - JSON 解析到 ListView Android

Android ListView 与 SQL 和 SDcard 数据