通过 item_news.xml 布局文件创建自定义的Adapter类:NewsItemListAdapter.java 继承 RecyclerView.Adapter<> 类。/** * Created by zhengliang on 2017/11/20 0020. */publicclassNewsItemListAdapterextendsRecyclerView.Adapter {privateContext context;privateListnewsList =newArrayList<>();privateOnItemClickListener listener;publicNewsItemListAdapter(Context context, ListNewsVO response) {this.context = context;if(response !=null&& response.getResult() !=null) {this.newsList = response.getResult().getData(); } }publicvoidsetListener(OnItemClickListener listener) {this.listener = listener; }@OverridepublicMyViewHolderonCreateViewHolder(ViewGroup parent,intviewType) {returnnewMyViewHolder(LayoutInflater.from(context).inflate(R.layout.itme_news, parent,false)); }@OverridepublicvoidonBindViewHolder(MyViewHolder holder,finalintposition) { ListNewsVO.ResultEntity.DataEntity news = newsList.get(position); holder.tvTitle.setText(news.getTitle()); holder.tvDate.setText(news.getDate());//加载图片Glide.with(context) .load(news.getThumbnail_pic_s()) .crossFade() .diskCacheStrategy(DiskCacheStrategy.ALL)//开启缓存.into(holder.ivImg);//设置Item的点击事件if(this.listener !=null) { holder.LLItem.setOnClickListener(newView.OnClickListener() {@OverridepublicvoidonClick(View view) { listener.onClick(view,position); } }); } }@OverridepublicintgetItemCount() {returnthis.newsList.size(); }staticclass MyViewHolder extends RecyclerView.ViewHolder {@BindView(R.id.tv_title) TextView tvTitle;@BindView(R.id.tv_date) TextView tvDate;@BindView(R.id.iv_img) ImageView ivImg;@BindView(R.id.ll_item) LinearLayout LLItem; MyViewHolder(View itemView) {super(itemView); ButterKnife.bind(this, itemView); } }/** * 自定义Item的点击事件接口 */publicinterfaceOnItemClickListener{voidonClick(View view,intposition); } }
其他的代码源码里面写的很清楚的,这里就不多赘述了!
源码地址:News_AndroidStudio源代码
最后看一下效果图:
-->