我正在为我的 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/