RecyclerView的简单使用

1、RecyclerView仿listview(可以上下滑动,也可左右滑动)
关键代码:

//实例化
 recyclerView= (RecyclerView) myView.findViewById(R.id.relistview);
  /**
   * RecyclerView.LayoutManager 抽象类
   * LinearLayoutManager 线性布局管理器  纵向横向
   */
 recyclerView.setLayoutManager(new LinearLayoutManager(context));

//使用recyclerView实现水平滚动的,下面的代码不写则默认的上下滚动listviewLinearLayoutManager linearLayoutManager=new LinearLayoutManager(context);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(linearLayoutManager);

//填充适配器
//list为数据源,getData()方法略
list=getData();

 MyListViewAdapter adapter = new MyListViewAdapter(context, list);
 recyclerView.setAdapter(adapter);



以下是MyListViewAdapter

/**
 * 仿listview的适配器
 */
public class MyListViewAdapter  extends RecyclerView.Adapter<MyListViewAdapter.MyViewHolder>{

    private List<ListBean.DataBean> list;
    private Context context;
    //自定义的监听事件
    private OnItemClickListener onItemClickListener;

    public MyListViewAdapter(Context context, List<ListBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    public void setListener(OnItemClickListener onItemClickListener){
        this.onItemClickListener=onItemClickListener;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //R.layout.listview_item里面就一个textview,这里就不贴出啦
        View view= LayoutInflater.from(context).inflate(R.layout.listview_item,null);
        MyViewHolder viewHolder=new MyViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(final MyViewHolder holder, int position) {  
            holder.tv_title.setText(list.get(position));
            //点击事件
            if (onItemClickListener!=null){
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        int pos=holder.getLayoutPosition();
                        onItemClickListener.OnItemClickListener(v,pos);
                    }
                });

                holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                    @Override
                    public boolean onLongClick(View v) {
                        int pos=holder.getLayoutPosition();
                        onItemClickListener.OnItemLongClickListener(v,pos);
                        return true;
                    }
                });
            }

    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder{

        TextView tv_title;

        public MyViewHolder(View itemView) {
            super(itemView);           
            tv_title = (TextView) itemView.findViewById(R.id.tv);           
        }
    }
}

以下是监听事件的代码:

public interface OnItemClickListener {
    //点击事件
    void OnItemClickListener(View view,int posotion);
    //长按事件
    void OnItemLongClickListener(View view,int position);
}

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值