android studio中使用recyclerview小白篇(三)

继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分.

增加如下的接口:

1
2
3
4
5
6
7
8
//增加一个静态的接口.
    private  OnItemClickListener listener;
    public  static  interface  OnItemClickListener {
        void  onItemClick(View view ,  int  position);
    }
    public  void  setOnItemClickListener(OnItemClickListener listener) {
        this .listener = listener;
    }

  

在onBindViewHolder中增加如下的代码

1
2
3
4
5
6
7
8
if  (listener !=  null ) {
        holder.v.setOnClickListener( new  View.OnClickListener() {
            @Override
            public  void  onClick(View v) {
                listener.onItemClick(v,position);
            }
        });
    }

  

这就好了,是目前能找到的比较简洁的方法了.

在主界面中直接使用就可以了.如下:

1
2
3
4
5
6
recycleAdapter.setOnItemClickListener( new  myRecycleradatper.OnItemClickListener() {
     @Override
     public  void  onItemClick(View view,  int  position) {
         Log.e( "constr" , " "  + position);
     }
});

  

观看点击后log.e的记录值.

 

自定义的数据适配器全部代码如下,供参照,虽然不好,但是能用,我也不知啥意思,以后慢慢理解吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
public  class  myRecycleradatper extends RecyclerView.Adapter<myRecycleradatper.MyViewHolder> {
     private  List<filelist> mDatas;
     private  Context mContext;
     private  LayoutInflater inflater;
 
     //增加一个静态的接口.
     private  OnItemClickListener listener;
     public  static  interface  OnItemClickListener {
         void  onItemClick(View view ,  int  position);
     }
     public  void  setOnItemClickListener(OnItemClickListener listener) {
         this .listener = listener;
     }
 
 
     public  myRecycleradatper(Context context, List<filelist> datas){
         this . mContext=context;
         this . mDatas=datas;
         inflater=LayoutInflater.  from (mContext);
     }
 
     @Override
     public  int  getItemCount() {
         return  mDatas.size();
     }
     @Override
     public  MyViewHolder onCreateViewHolder(ViewGroup parent,  int  viewType) {
 
         View view = inflater.inflate(R.layout.item_view,parent,  false );
         MyViewHolder holder=  new  MyViewHolder(view);
 
         return  holder;
     }
 
     @Override
     public  void  onBindViewHolder(MyViewHolder holder, final  int  position) {
         filelist da=mDatas. get (position);
         if (position%2==0){
             //holder.tv.setBackgroundColor(Color.BLUE);
             holder.v.setBackgroundColor(Color.GRAY);
         }
         if  (listener !=  null ) {
             holder.v.setOnClickListener( new  View.OnClickListener() {
                 @Override
                 public  void  onClick(View v) {
                     listener.onItemClick(v,position);
                 }
             });
         }
         holder.tv.setText(da.getName());
         holder.msg.setText(da.getZt());
 
     }
 
     class  MyViewHolder extends RecyclerView.ViewHolder{
         TextView tv;
         TextView msg;
         View v;
         public  MyViewHolder(View view) {
             super(view);
             tv=(TextView) view.findViewById(R.id.txt_xs);
             msg=(TextView)view.findViewById(R.id.txt_msg);
             v=view;
         }
 
     }
}

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值