学习Android Material Design(RecyclerView代替ListView)

2019-12-10 19:15:24王旭

重写三个方法 

  • public int getItemCount()
  • public TestAdapter.ImageItemArticleViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
  • public void onBindViewHolder(ImageItemArticleViewHolder holder, int position)

     

    public class ItemArticleAdapter extends RecyclerView.Adapter<ItemArticleAdapter.ImageItemArticleViewHolder> {
    
     //新闻列表
     private List<ItemArticle> articleList;
    
     //context
     private Context context;
    
     private LayoutInflater mLayoutInflater;
    
    
     public ItemArticleAdapter(Context context,List<ItemArticle> articleList) {
      this.context = context;
      this.articleList = articleList;
      mLayoutInflater = LayoutInflater.from(context);
     }
    
     @Override
     public ItemArticleAdapter.ImageItemArticleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View view = mLayoutInflater.inflate(
        R.layout.item_article_type_1, parent, false);
      return new ImageItemArticleViewHolder(view);
     }
    
     @Override
     public void onBindViewHolder(ImageItemArticleViewHolder holder, int position) {
      ItemArticle article = articleList.get(position);
      holder.rcvArticlePhoto.setImageURI(Uri.parse(article.getImageUrl()));
      holder.rcvArticleTitle.setText(article.getTitle());
      holder.rcvArticleDate.setText(article.getPublishDate());
      holder.rcvArticleSource.setText(article.getSource());
      //注意这个阅读次数是 int 类型,需要转化为 String 类型
      holder.rcvArticleReadtimes.setText(article.getReadTimes()+"次");
      holder.rcvArticlePreview.setText(article.getPreview());
     }
    
    
     @Override
     public int getItemCount() {
      return articleList.size();
     }
    
     class ImageItemArticleViewHolder extends RecyclerView.ViewHolder {
    
      @InjectView(R.id.rcv_article_photo)
      SimpleDraweeView rcvArticlePhoto;
      @InjectView(R.id.rcv_article_title)
      TextView rcvArticleTitle;
      @InjectView(R.id.rcv_article_date)
      TextView rcvArticleDate;
      @InjectView(R.id.rcv_article_source)
      TextView rcvArticleSource;
      @InjectView(R.id.rcv_article_readtimes)
      TextView rcvArticleReadtimes;
      @InjectView(R.id.rcv_article_preview)
      TextView rcvArticlePreview;
    
      public ImageItemArticleViewHolder(View itemView) {
       super(itemView);
       ButterKnife.inject(this, itemView);
      }
     }
    
    }
    
    

    3、新闻实体类 javabean

    有新闻的 index,图片 url,标题,发布时间,来源,阅读次数,新闻内容预览