package com.wm.remusic.adapter; import android.app.Activity; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.bilibili.magicasakura.widgets.TintImageView; import com.wm.remusic.R; import com.wm.remusic.info.MusicInfo; import java.util.List; /** * Created by wm on 2016/2/21. */ public class MusicFlowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener { private List<OverFlowItem> mList; private MusicInfo musicInfo; private Context mContext; private OnRecyclerViewItemClickListener mOnItemClickListener = null; public MusicFlowAdapter(Context context, List<OverFlowItem> list, MusicInfo info) { mList = list; musicInfo = info; mContext = context; } @Override public void onClick(View v) { if (mOnItemClickListener != null) { //注意这里使用getTag方法获取数据 mOnItemClickListener.onItemClick(v, (String) v.getTag()); } } public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) { this.mOnItemClickListener = listener; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.music_flow_layout, parent, false); ListItemViewHolder vh = new ListItemViewHolder(view); //将创建的View注册点击事件 view.setOnClickListener(this); return vh; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { OverFlowItem minfo = mList.get(position); ((ListItemViewHolder) holder).icon.setImageResource(minfo.getAvatar()); ((ListItemViewHolder) holder).icon.setImageTintList(R.color.theme_color_primary); ((ListItemViewHolder) holder).title.setText(minfo.getTitle()); //设置tag ((ListItemViewHolder) holder).itemView.setTag(position + ""); } @Override public int getItemCount() { return mList.size(); } //定义接口 public interface OnRecyclerViewItemClickListener { void onItemClick(View view, String data); } public class ListItemViewHolder extends RecyclerView.ViewHolder { TintImageView icon; TextView title; ListItemViewHolder(View view) { super(view); this.icon = (TintImageView) view.findViewById(R.id.pop_list_view); this.title = (TextView) view.findViewById(R.id.pop_list_item); } } }