废话不多说直接贴代码
package com.yl.ylnews.adapter;
import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.yl.ylnews.R;
import com.yl.ylnews.bean.TopNews;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener {
private List<T> dataBeanList;
private Activity mActivity;
public MyAdapter(List<T> dataBeanList, Activity mActivity) {
this.dataBeanList = dataBeanList;
this.mActivity = mActivity;
}
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
//定义接口
public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view, T data);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_list_news, viewGroup, false);
ViewHolder vh = new ViewHolder(view);
//将创建的View注册点击事件
view.setOnClickListener(this);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
// viewHolder.mTextView.setText(datas[position]);
T dataBean = dataBeanList.get(position);
String thumbnail_pic_s = dataBean.getThumbnail_pic_s();
Glide.with(mActivity).load(thumbnail_pic_s).into(viewHolder.ivIcon);
viewHolder.tvAuthorName.setText(dataBean.getAuthor_name());
viewHolder.tvDate.setText(dataBean.getDate());
viewHolder.tvNewsTittle.setText(dataBean.getTitle());
//将数据保存在itemView的Tag中,以便点击时进行获取
viewHolder.itemView.setTag(dataBean);
}
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取数据
mOnItemClickListener.onItemClick(v, (T) v.getTag());
}
}
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
//获取数据的数量
@Override
public int getItemCount() {
return dataBeanList.size();
}
//自定义的ViewHolder,持有每个Item的的所有界面元素,
//使用butterknife生成,不了解的可用自己手写viewholder
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.iv_icon)
ImageView ivIcon;
@BindView(R.id.tv_author_name)
TextView tvAuthorName;
@BindView(R.id.tv_date)
TextView tvDate;
@BindView(R.id.tv_news_tittle)
TextView tvNewsTittle;
ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}