java - ListActivityを拡張するクラスにAdViewを追加する

java android listview admob listactivity

AndroidアプリにAdMobを使用しています。そして、ListActivityを拡張するアクティビティにAdViewを追加したかったのです。

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配列を返しました。

だから私は何が間違っているのですか?このアクティビティが読み込まれると、アプリは終了します。
答え
追加ビューを常に表示したい(リストビューとは関係ない)場合は、次のようなレイアウトにすることができます。

<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ではなくこのAdViewを返します)。

現在の実装の正確な問題を理解するために、さらにコードを追加してもらえますか?

BR、
ディミトリス
関連記事

java - プロジェクトのgitignore apikeys

java - ジェネリックメソッドを明示的に呼び出す

java - repaint()エラー。私の再描画メソッドは画面を点滅させるだけです

java - Androidでラテン語のアクセント付き文字を使用する方法

java - Androidレイアウトの遷移効果

java - JavaでWebサービスを介して複数のセッション要求を維持する

java - リソースをSDカードにコピーすると、Androidで破損したファイルが表示されます

java - JavaScriptのような構文を自分のJavaメソッドに解析する

java - IllegalArgumentException:オブジェクトの配列をSCHEMA_SOURCEプロパティの値として使用する場合、2つのスキーマが同じtargetNamespaceを共有することはできません

java - Notnoop / java-apnsプッシュ