2016-06-01 17 views
8

新しいAdMobネイティブ広告機能をアプリで使用したいと考えています。私はlistView内にネイティブ広告を置いておきたい。リスト内の20番目かそれ以上のアイテムは広告だ。 Native Express広告でこれを達成することは可能ですか?またはNatve Advanced Adを使用する必要がありますか?AdMobネイティブ広告をリストビューに表示する

答えて

2

アプローチは、デフォルトのArrayAdapterを使用する代わりに、BaseAdapterを拡張して独自のカスタムアダプタを作成することです。次に、広告を表示するときに通常の通常の表示ではなく、「広告」表示を返す必要があります。これは、より多くの行を返すためにgetCount()をオーバーライドする必要があることを意味します(たとえば、10行の場合、11 = 10の実際のコンテンツ+1の広告を返す必要があります)。

次に、このビューを作成するには、単に位置変数を確認するだけです:

if (position == VALUE) { 
    // Create and return Ad View 
} else { 
    // Create and return a normal View 
} 

希望すると助かります。私はこれまで最高のものを見つけましたが、このために最適化された方法を見つけることを望みました。

3

よく@Jagjitは正しいアプローチを示しています。私は
2.ネイティブ広告を表示するための別のレイアウトリソースファイルを作成します(デザインはのようになり、それがリストビュー項目として表示される(BaseAdapterを拡張することによって)独自のカスタムアダプタを作成ステップ
1歩書きます上記の手順で作成したカスタムアダプター)は以下のようgetView方法で
3.第二の位置に広告を表示するために(何かを)ここで

if (position == 1) { 
    rowView = inflater.inflate(R.layout.native_ad_adapter, null); 
    NativeExpressAdView adView = (NativeExpressAdView)rowView.findViewById(R.id.adView); 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    adView.loadAd(adRequest); 
} else { 
    rowView = inflater.inflate(R.layout.my_custom_list, null); 
    TextView bigtxt = (TextView) rowView.findViewById(R.id.txt1); 
    ... 
    ... 
} 

カスタムアダプタがmy_custom_listです
広告が表示されます。しかし、小さな問題があります.1位のリストの実際の項目は表示されません。
4.そのためには、ListViewを入力する前にリストに余分な項目を追加します。私はArrayListを使いましたので、簡単にやり遂げることができました。

arrayList1.add(1,"ad here"); 
listview1.setAdapter(new MyAdapter(callerView.getContext(), arrayList1.toArray(new String[arrayList1.size()]))); 
+0

例として完全なクラス(AdapterClassとレイアウト)を教えてください。これは本当に便利です! – basti12354

+0

BTW ** my_custom_list **はアダプターではなく、コードのためにXMLビューのIDです。 – kot331107

+0

my_custom_listはアダプターとして作成されたXMLファイルですが、単一のビューではありませんが、デザインファイル全体実行時に膨らんだアダプタ) –

2

を次のように私のアプローチがあり、私はそれが自動的にリストビューまたはrecyclerview内のすべてのX項目に広告ブロックを取得して表示するようにアダプタをラップ... Admobadapter libは、あなたが探しているものであると思います。 1.適切なタイプのセットアップラッパー(基本的には4つのラッパーがあります(リストビューの場合は、リサーチビューの場合はアドバンスド広告、2つの場合はエクスプレス広告) 2.アダプタをラッパーに挿入します 3.リストビュー/リサイクルビューにラッパーを挿入します 4.アダプターにデータを入力し、onDataSetChanged()を呼び出すと、ラッパーはその内容を行います。

また、Expressネイティブ広告とアドバンスドネイティブ広告もサポートしています。このissueによれば、すぐにMaven/Gradleサポートを追加しようとしています。がんばろう!

0

独自のカスタムリストビューとカスタムアダプターを作成する必要があります。

  1. は、スクロールビューを作成し、LinearLayout
  2. ScrollViewでINFLATでするクラスを作成しますLinearLayoutにあなたのレイアウトをあなたのコンテンツ
  3. を処理するXMLレイアウトなど、あなたのテンプレートを作成して子供のように。このように:このコードで

    private static void CreateIntemEmptty(Context context, ViewGroup view) { 
        LayoutInflater inflater = (LayoutInflater) Home.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        View child = inflater.inflate(R.layout.empty, null); 
        ViewGroup Prnt =(ViewGroup)view.getParent().getParent(); 
        Prnt.removeViewInLayout((View)view.getParent()); 
        ViewGroup.LayoutParams p =new ViewGroup.LayoutParams(Prnt.getWidth(),Prnt.getHeight()); 
        Prnt.addView(child,p); 
    } 
    

    私は空の要素を作成し、それが

  4. あなたは子としてLinearLayoutでADSを追加することができます追加します。

関連する問題