2017-05-23 5 views
2

私はrecyclerviewにadmobバナーを追加しようとしています。recyclerviewのadmob

私の問題は、admobをinicializeすることです。

アダプタ

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v; 
    if (viewType == ad) { 
     ad_act = 1; 
     v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.adview, parent, false); 
    } 
    else { 
     ad_act = 0; 
     v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.list, parent, false); 
    } 
    return new ViewHolder(v); 
} 

adviewとリストのxml:

は、私は2つのビューを持っています。 adviewにはadmob xml bannerがあります。

私はAdMobのをinicializeする必要があるので、私は私のアダプタで、私の主な活動ではありませんが、それを追加しようとしました:

主な活動INSIDEのonCreate:

ViewGroup content = (ViewGroup) findViewById(R.id.content_frame); 
getLayoutInflater().inflate(R.layout.activity_main, content, true); 

MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713"); 
mAdView = (AdView) findViewById(R.id.adView); 
AdRequest adRequest = new AdRequest.Builder().build(); 
mAdView.loadAd(adRequest); 

が、これは私にはnull例外を与えますR.id.adView

のjava.lang.NullPointerException:仮想メソッドを呼び出そうと「無効 com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest ) ' のヌルオブジェクト参照

私はmain_activityにr.layout.adviewを追加していないためです。任意のアイデアをどのように追加できますか?

答えて

1

問題は、AdViewのアクティビティのレイアウトを検索しているため、onCreateでそのレイアウトを検索できないことです。 onCreateのコンストラクタを使用してプログラムでAdViewを作成し、アダプタをバックアップするデータアイテムと共にリストに保持してください。

興味のある方は、バナーと同じサイズのネイティブエクスペリエンスフォーマットを使用する方法についてサンプルを用意していますが、広告を自分でスタイリングするオプションがあります。あなたがそれらを好むかどうかは簡単に、バナーに適しています:

+0

。ネイティブ・エキスパート広告は推奨されていません。ネイティブ広告は現在すべての開発者が利用できるわけではありません。 – Mete