2017-05-08 76 views

回答

0

我將創建兩個視圖持有者,一對小例子如下所示:

1)NativeAdViewHolder

2)BlogViewHolder

public class NativeAdViewHolder extends RecyclerView.ViewHolder { 

    private final NativeExpressAdView mNativeAd; 

    public NativeAdViewHolder(View itemView) { 
     super(itemView); 
     mNativeAd = (NativeExpressAdView) itemView.findViewById(R.id.nativeAd); 
     mNativeAd.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       super.onAdLoaded(); 
       if (mItemClickListener != null) { 
        Log.i("AndroidBash", "onAdLoaded"); 
       } 
      } 

      @Override 
      public void onAdClosed() { 
       super.onAdClosed(); 
       if (mItemClickListener != null) { 
        Log.i("AndroidBash", "onAdClosed"); 
       } 
      } 

      @Override 
      public void onAdFailedToLoad(int errorCode) { 
       super.onAdFailedToLoad(errorCode); 
       if (mItemClickListener != null) { 
        Log.i("AndroidBash", "onAdFailedToLoad"); 
       } 
      } 

      @Override 
      public void onAdLeftApplication() { 
       super.onAdLeftApplication(); 
       if (mItemClickListener != null) { 
        Log.i("AndroidBash", "onAdLeftApplication"); 
       } 
      } 

      @Override 
      public void onAdOpened() { 
       super.onAdOpened(); 
       if (mItemClickListener != null) { 
        Log.i("AndroidBash", "onAdOpened"); 
       } 
      } 
     }); 
     AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice(TEST_DEVICE_ID) 
       .build(); 
     //You can add the following code if you are testing in an emulator 
     /*AdRequest adRequest = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .build();*/ 
     mNativeAd.loadAd(adRequest); 
    } 
} 



// RecyclerView class 
public static class BlogViewHolder extends RecyclerView.ViewHolder{ 

    View mView; 
    ImageButton mLikeBtn,mShareBtn; 

    DatabaseReference mDatabaseLike; 
    FirebaseAuth mAuth; 
    public BlogViewHolder(View itemView) { 
     super(itemView); 
     mView = itemView; 
     mLikeBtn = (ImageButton)mView.findViewById(R.id.like_btn); 
     mShareBtn = (ImageButton)mView.findViewById(R.id.share_post_btn); 

    } 

    public void setTitle(String title){ 

     TextView post_title = (TextView)mView.findViewById(R.id.post_title); 
     post_title.setText(title); 
    } 

    public void setUsername(String username){ 
     TextView post_username = (TextView)mView.findViewById(R.id.post_username); 
     post_username.setText("By: "+username); 
    } 

    public void setDate(String date){ 
     TextView etDate = (TextView)mView.findViewById(R.id.today_post_time); 
     etDate.setText("Date: "+date); 
    } 

} 

然後

@Override 
       public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
        View view; 
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); 
        switch (viewType) { 
         default: 
          view = layoutInflater 
            .inflate(R.layout.today_news_blog_row, parent, false); 
          return new BlogViewHolder(view); 
         case NATIVE_AD_VIEW_TYPE: 
          view = layoutInflater.inflate(R.layout.list_item_native_ad, parent, false); 
          return new NativeAdViewHolder(view); 
        } 
       } 
      }; 
+0

您錯過了我的問題的核心「FirebaseRecy來自FirebaseUI的clerAdapter「 – stasbar