重点在适配器直接上代码:
/**
* 全部类型适配器
*/
public static class AllTypeAdapter extends RecyclerView.Adapter<AllTypeAdapter.ViewHolder> implements View.OnClickListener {
private Context mContext;
private List<AllTypeResponse.DataBean.ListBean> details_list = new ArrayList<>();
//声明自定义的监听接口
private OnCodeRecyclerviewItemClickListener mOncodeRecyclerviewItemClickListener = null;
public AllTypeAdapter(Context context, OnCodeRecyclerviewItemClickListener mOnRecyclerviewItemClickListener) {
this.mContext = context;
this.mOncodeRecyclerviewItemClickListener = mOnRecyclerviewItemClickListener;
}
//添加数据
public void addList(List<AllTypeResponse.DataBean.ListBean> mlist) {
details_list.clear();
details_list.addAll(mlist);
notifyDataSetChanged();
}
//加载更多
public void addMoreList(List<AllTypeResponse.DataBean.ListBean> mlist) {
details_list.addAll(mlist);
notifyDataSetChanged();
}
public AllTypeResponse.DataBean.ListBean getItem(int position) {
return details_list.get(position);
}
@Override
public int getItemCount() {
return details_list == null ? 0 : details_list.size();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.all_type_item, parent, false);
view.setOnClickListener(this);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final AllTypeResponse.DataBean.ListBean code_detaisl_data = details_list.get(position);
if (code_detaisl_data != null) {
holder.tv_order.setText(String.valueOf(position + 1));
holder.tv_all_data.setText(code_detaisl_data.getTitle());
holder.itemView.setTag(position);//给view设置tag以作为参数传递到监听回调方法中
}
}
@Override
public void onClick(View v) {
//将监听传递给自定义接口
mOncodeRecyclerviewItemClickListener.onItemClickListener(v, ((int) v.getTag()));
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView tv_all_data, tv_all_hin, tv_order;
ViewHolder(View itemView) {
super(itemView);
tv_order = (TextView) itemView.findViewById(R.id.tv_order);
tv_all_data = (TextView) itemView.findViewById(R.id.tv_all_data);
tv_all_hin = (TextView) itemView.findViewById(R.id.tv_all_hin);
}
}
}
public interface OnCodeRecyclerviewItemClickListener {
void onItemClickListener(View v, int position);
}
然后在Activity中调用:
private OnCodeRecyclerviewItemClickListener onCodeRecyclerviewItemClickListener = new OnCodeRecyclerviewItemClickListener() {
@Override
public void onItemClickListener(View v, int position) {
AllTypeResponse.DataBean.ListBean item = allTypeAdapter.getItem(position);
Toast.makeText(AllTypeActivity.this,item.getTitle(),Toast.LENGTH_LONG).show();
}
};