Добавление AdView в класс, который расширяет ListActivity. - PullRequest
2 голосов
/ 28 августа 2011

Я использую AdMob для своих приложений для Android.И я хотел добавить AdView в Activity, которая расширяет 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());
}

У меня естьустановите Разрешения и объявите необходимые действия в Манифесте.

В методе populateList() я только получил Cursor, затем выполнил некоторые манипуляции и, наконец, возвратил массив String.

Так что я делаю не так?Приложение просто закрывается при загрузке этого действия.

1 Ответ

2 голосов
/ 28 августа 2011

В случае, если вы хотите, чтобы представление добавления было всегда видимым (поэтому не имеет отношения к представлению списка), вы можете использовать макет, подобный следующему:

<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,Димитрис

...