2017-10-10 3 views
0

J'essaie d'intégrer l'annonce natif admob avec recyclerview pendant 2 jours.il montre seulement un espace vide.i données enregistrées il a dit que l'annonce n'a pas réussi à charger le code d'erreur 0.facebook annonce native est montrant bien. mais admob ne montre pas.please n'importe qui m'aider pour obtenir ce bulshit. Voici ma classe d'adaptateur.Admob annonce native ne pas afficher avec recyclerview android

ListViewAdapter public class étend RecyclerView.Adapter {

// Declare Variables 
Context context; 
LayoutInflater inflater; 
ArrayList<HashMap<String, String>> data; 
HashMap<String, String> resultp = new HashMap<String, String>(); 
private AdView mAdView; 
private static final int DEFAULT_VIEW_TYPE = 1; 
private static final int NATIVE_AD_VIEW_TYPEADMOB = 2; 
private NativeAd nativeAd; 
private NativeAdsManager manager; 
View facebooknativeview; 
View Admobnativeview; 

// Create native UI using the ad metadata. 
ImageView nativeAdIcon; 
TextView nativeAdTitle; 
MediaView nativeAdMedia; 
TextView nativeAdSocialContext; 
TextView nativeAdBody; 
Button nativeAdCallToAction; 


public ListViewAdapter(Context context, 
         ArrayList<HashMap<String, String>> arraylist) { 
    this.context = context; 
    data = arraylist; 



} 


@Override 
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    switch (viewType) { 

     case NATIVE_AD_VIEW_TYPEADMOB: 
      Admobnativeview = LayoutInflater.from(parent.getContext()).inflate(R.layout.admob_native_ad, parent, false); 
      return new AdmobExpressNativeViewHolder(Admobnativeview); 

     default: 
      View MenuView = LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_item, parent, false); 
      return new ArticleHolder(MenuView); 


    } 


} 

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 

    if (getItemViewType(position) == DEFAULT_VIEW_TYPE) { 

     ArticleHolder articleholder = (ArticleHolder) holder; 
     resultp = data.get(position); 
     articleholder.title.setText(resultp.get(PageFragment.TITLE)); 
     articleholder.link.setText(resultp.get(PageFragment.LINK)); 
     articleholder.summery.setText(resultp.get(PageFragment.SUMMERY)); 
     articleholder.time.setText(resultp.get(PageFragment.TIME)); 

     // Capture position and set results to the ImageView 
     Picasso.with(context).load(resultp.get(PageFragment.IMAGE)).into(articleholder.image); 
     Log.d("all texts", PageFragment.LINK + PageFragment.TITLE); 
    } 
    else if(getItemViewType(position)==NATIVE_AD_VIEW_TYPEADMOB) 
    { 
     AdmobExpressNativeViewHolder adexpress=(AdmobExpressNativeViewHolder)holder; 

     Log.d("admob native", "native starting"); 
     //Load the Ad 
     AdRequest request = new AdRequest.Builder() 
       //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
       //.addTestDevice("58DA103A6EB90C4260FD9202741F4EB4") 
       .build(); 
     adexpress.adView.loadAd(request); 

    } 
} 


@Override 
public long getItemId(int position) { 
    return 0; 
} 

@Override 
public int getItemCount() { 
    return data.size(); 
} 

@Override 
public int getItemViewType(int position) { 
    if(position != 0 && position % 2 == 0) 
    { 
     return NATIVE_AD_VIEW_TYPEADMOB; 
    } 
    return DEFAULT_VIEW_TYPE; 
} 


public class ArticleHolder extends RecyclerView.ViewHolder 

{ 
    TextView title; 
    TextView link; 
    TextView summery; 
    TextView time; 
    ImageView image; 

    public ArticleHolder(final View itemView) { 
     super(itemView); 
     // Locate the TextViews in listview_item.xml 
     title = (TextView) itemView.findViewById(R.id.title); 
     link = (TextView) itemView.findViewById(R.id.link); 
     summery = (TextView) itemView.findViewById(R.id.summery); 
     time = (TextView) itemView.findViewById(R.id.time); 

     // Locate the ImageView in listview_item.xml 
     image = (ImageView) itemView.findViewById(R.id.image); 

     itemView.setOnClickListener(new View.OnClickListener() { 
      int position = getPosition(); 

      @Override 
      public void onClick(View view) { 

       String stitle = title.getText().toString(); 
       String ssummery = summery.getText().toString(); 
       String stime = time.getText().toString(); 
       String simage = resultp.get(PageFragment.IMAGE); 
       String slink = link.getText().toString(); 
       Intent intent = new Intent(context, SingleItemView.class); 
       intent.putExtra("title", stitle); 
       intent.putExtra("summery", ssummery); 
       intent.putExtra("time", stime); 
       intent.putExtra("image", simage); 
       intent.putExtra("link", slink); 
       itemView.getContext().startActivity(intent); 
      } 
     }); 

    } 

} 



private class AdmobExpressNativeViewHolder extends RecyclerView.ViewHolder { 
    NativeExpressAdView adView; 
    public AdmobExpressNativeViewHolder(View admobnativeview) { 
     super(admobnativeview); 
     adView = (NativeExpressAdView)admobnativeview.findViewById(R.id.adView); 
     adView.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       super.onAdLoaded(); 
       Log.d("admob native","ad loaded"); 
       notifyDataSetChanged(); 

      } 
      @Override 
      public void onAdOpened() { 
       super.onAdOpened(); 
      } 
      @Override 
      public void onAdLeftApplication() { 
       super.onAdLeftApplication(); 
      } 
      @Override 
      public void onAdFailedToLoad(int i) { 
       super.onAdFailedToLoad(i); 
       Log.d("admob native","ad failed to load"+i); 

      } 
      @Override 
      public void onAdClosed() { 
       super.onAdClosed(); 

      } 
     }); 



    } 
} 

}

Répondre

0

Vous devez checkout this vidéo de Google développeurs qui explique clairement tout sur AdMob Express natif RecyclerView.

Il suggère de charger l'annonce dans MainActivity.

+0

mon activité principale contient viewpager.how puis-je envoyer nativead à travers cela. ViewPager viewPager = (ViewPager) findViewById (R.id.viewpager); viewPager.setAdapter (new SampleFragmentPagerAdapter (getSupportFragmentManager())); // Donne le PagerSlidingTabStrip au ViewPager PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip) findViewById (R.id.tabs); // Attacher le pageur de vue à la bande d'onglets tabsStrip.setViewPager (viewPager); – shakac