看懂android中的adapter适配器

首先需要知道一共有4个文件:fragment类,adapter,fragment的布局文件,adapter中的item的布局文件

1,首先声明一个控件:RecyclerView

2,然后声明一个adapter类

3,在initView()上

//给RecyclerView控件设置一个布局
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

//声明一个adapter
recyclerAdapter= new RecyclerAdapter();

//给RecyclerView控件设置一个adapter
recyclerView.setAdapter(recyclerAdapter);

//给RecyclerView控件设置样式
recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
   @Override
   public void getItemOffsets(@NonNull Rect outRect,@NonNull View view,@NonNull RecyclerView parent,@NonNull RecyclerView.State state) {
       int topAndBottom = SizeUtils.dip2px(getContext(),4);
       int leftAndRight = SizeUtils.dip2px(getContext(),6);
       outRect.left = leftAndRight;
       outRect.right = leftAndRight;
       outRect.top = topAndBottom;
       outRect.bottom = topAndBottom;
}});

4,在initListener()上,这里记得在fragment类上需要实现adapter的点击事件

//给adapter设置点击事件
recyclerAdapter.setOnLeftItemClickListener(this);

5,给adapter上设置数据

//把得到的数据放到adapter类上实现
recyclerAdapter.setData(data);

6,在adapter类上

  1,onCreateViewHolder():设置每一条item的样式布局

  2,onBindViewHolder():在这里设置点击每一个item的点击事件

在这里会调用holder.setInData(dataBean):这是给adapter的内部类设置数据

//这个是给实现接口点击事件的方法
holder.itemView.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
      if(mItemClickListener != null) {
         mItemClickListener.onItemClick(dataBean);
      }
   }
});

  3,getItemCount():主要设置得到数据的数目

  4,interface OnListItemClickListener{}:提供一个接口给fragment实现点击事件

void onItemClick(IBaseInfo item);

  5,setOnListItemClickListener(OnListItemClickListener listener):在adapter上实现点击事件

  6,setData():这个是在fragment上调用的,获取fragment传递过来的数据,在第5步的recyclerAdapter.setData(data):这个方法上调用

  7,adapter的内部实现类

     1,在这里找到item布局的控件id

     2,通过setInData():把onBindViewHolder()的数据设置到item的布局上

7,【实现item的点击事件】在fragment类上实现implement XXXAdapter.OnListItemClickListener 

    @Override
    public void onItemClick(IBaseInfo item) {
        //列表内容被点击了
        LogUtils.d(this,"list item click --- > " + item.getTitle());
        handleItemClick(item);
    }

同时,在fragment上还要记得

//给适配器中列表的点击,设置点击方法
XXXAdapter.setOnListItemClickListener(this);

上面是对每一个item布局设置的

如果是list的,则不用这么麻烦

如果对我的其它文章有更多的兴趣,可以访问我的个人博客:uniqueho.xyz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hurley11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值