RecyclerView代码

**
 * 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值