** * Created by ljt on 2016/9/21. */ public class ListRecyclerViewAdapter extends RecyclerView.Adapter<ListRecyclerViewAdapter.ListViewHolder> { private List<String> list; private Context context; private OnItemClickListener onItemClickListener; public ListRecyclerViewAdapter(Context context,List<String> list){ this.list=list; this.context=context; } /** * TODO 初始化控件 * @param parent * @param viewType * @return */ @Override public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //TODO 获取一个布局文件 View itemView = LayoutInflater.from(context) .inflate(R.layout.adapter_list,parent,false); //TODO 创建一个LisetViewHolder的实力 return new ListViewHolder(itemView); } // TODO 填充界面 @Override public void onBindViewHolder(final ListViewHolder holder, int position) { holder.textView.setText(list.get(position)+""); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener!=null){ //TODO 得到布局的item位置,而且每次点击的时候都可以获取最新的item的位置 int pos = holder.getLayoutPosition(); onItemClickListener.onItemClick(v,pos); } } }); //TODO 长按的点击事件 holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (onItemClickListener != null){ //TODO 得到布局的item位置,而且每次点击的时候都可以获取最新的item的位置 int pos = holder.getLayoutPosition(); onItemClickListener.onItemClick(v,pos); } //TODO 返回决定是否消费事件:true :是代表消费,那么后续的点击事件就无法被触发,为false则反之 return true; } }); } //TODO 返回显示是行数还是列数的个数 @Override public int getItemCount() { return list.size(); } class ListViewHolder extends RecyclerView.ViewHolder{ TextView textView; public ListViewHolder(View itemView) { super(itemView); textView = (TextView) itemView.findViewById(R.id.tv_list); } } /** * TODO Recycler的item的点击和长按事件 */ interface OnItemClickListener{ void onItemClick(View view,int position); void onItemLongClick(View view,int position); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } }
转载于:https://my.oschina.net/u/2899016/blog/750423