RecyclerView的简单实用和点击事件

RecyclerView本身和listview一样,但是RecyclerView没有Itme的点击事件,所以要自己去实现。

1.要使用RecyclerView首先要添加RecyclerView的相关依赖

dependencies { compile 'com.android.support:recyclerview-v7:21.0.0' }

别忘了更新一下   这样就可以在布局文件里使用了  这里就不演示了

2.在java代码里加载控件创建Adapter 实现3个方法,这里RecyclerView继承的是RecyclerView.Adapter和listView不一样

 
public class WDFD_WWC_Adapter extends RecyclerView.Adapter<WDFD_WWC_Adapter.ViewHolder> {
    private Activity activity;
    public WDFD_WWC_Adapter(Activity activity) {
        this.activity = activity;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(activity).inflate(R.layout.wdfd_wwc_itme,parent,false);
        ViewHolder myViewHolder = new ViewHolder(view);
        return myViewHolder;
    }
 
    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
   
    }

    @Override
    public int getItemCount() {
        return 8;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);
        }
    }
}
4.在主页面去加载并且把Adapter加载给RecyclerView
mWwcRv = (RecyclerView) view.findViewById(R.id.wdfd_wwc_rv);
wdfd_wwc_adapter = new WDFD_WWC_Adapter(mActivity);
mWwcRv.setAdapter(wdfd_wwc_adapter);
这句是设置RecyclerView加载的样式的  ,这个是垂直的
mWwcRv.setLayoutManager(new LinearLayoutManager(mActivity,
        LinearLayoutManager.VERTICAL,false));

5.因为RecyclerView 没有给我们提供Itme的点击事件所以我们要自己去写,在Adapter里面实现

首先初始化一个变量

private OnItemClickListener mOnItemClickListener;

然后写一个接口里面实现两个方法一个点击,一个长按

public interface OnItemClickListener{
    void onClick( int position);
    void onLongClick( int position);
}

然后写个个对外的set方法方便使用的时候调用

public void setOnItemClickListener(OnItemClickListener onItemClickListener ){
    this. mOnItemClickListener=onItemClickListener;
}
接着在 onBindViewHolder方法里面判断一下不为空就实现点击事件

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    if( mOnItemClickListener!= null) {
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mOnItemClickListener.onClick(position);
            }
        });
        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                mOnItemClickListener.onLongClick(position);
                return false;
            }
        });
    }
最后在主页里实现就行了
wdfd_wwc_adapter.setOnItemClickListener(new WDFD_WWC_Adapter.OnItemClickListener() {、
 //这个是点击事件
    @Override
    public void onClick(int position) {
  
    }
 //这个是长按事件
    @Override
    public void onLongClick(int position) {

    }
});
这样一个常用的RecyclerView 就完成了,
RecyclerView 相比 ListView 在基础使用上的区别主要有如下几点:
  ViewHolder 的编写规范化了
  RecyclerView 没有提供Itme的点击事件需要自己使用
  RecyclerView 需要多出一步 LayoutManager 的设置工作
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值