封装Recycleview.Adapter使Recycleview具有加载更多,item点击事件等功能

本文简要介绍RecyclerView,它是support-v7库中的组件,具备布局复用和ViewHolder特性。RecyclerView通过LayoutManager子类控制UI显示。文章旨在解决如何在RecyclerView中添加加载更多功能及实现item点击事件。
摘要由CSDN通过智能技术生成

Recycleview简介:

类似Recycleview使用的文章很多,这里简单介绍一下:RecyclerView是support-v7包中的新组件,自带布局复用与ViewHolder,Recycleview不关心UI的显示方式,由LayoutManager实现类控制显示方式。如果你还没使用过Recycleview,建议先写一个ListView样式的Recycleview demo.


需要解决的问题:

1.下拉刷新,上拉加载是ListView中最常用的功能。下拉刷新可以使用V7包中SwipeRefreshLayout等实现加载更多如何实现呢?
2.列表显示中多种布局也是常见的功能,Recycleview如何实现呢。
3.使用时会不会很失望,怎么没有item点击事件呢?

一个个来解决:

废话少说,放码过来:
public abstract  class MCyclerAdapter<T>extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    protected List<T> list;
    protected Context context;
    protected LayoutInflater inflater;
    private final static int FOOT_TYPE = 99;

    /**
     * 设置自己的底部加载更多的布局
     * @param customFootView
     */
    public void setCustomFootView(View customFootView) {
        isLoadMore = true;
        this.customFootView = customFootView;
    }

    private View customFootView;
    public boolean isMultiType() {
        return isMultiType;
    }

    public boolean isLoadMore() {
        return isLoadMore;
    }

    /**
     * 设置是否底部显示加载更多,默认不显示
     * @param isLoadMore
     */
    pu
RecyclerViewitem点击事件可以通过设置RecyclerView的OnItemClickListener来实现。具体步骤如下: 1. 在RecyclerViewAdapter中定义一个接口OnItemClickListener,用于回调item点击事件。 2. 在AdapterViewHolder中设置item点击事件,当item被点击时,调用OnItemClickListener的回调方法。 3. 在RecyclerView的Activity或Fragment中实现OnItemClickListener接口,处理item点击事件。 示例代码如下: 1. Adapter中定义OnItemClickListener接口 public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<String> mData; private OnItemClickListener mOnItemClickListener; public interface OnItemClickListener { void onItemClick(View view, int position); } public void setOnItemClickListener(OnItemClickListener listener) { mOnItemClickListener = listener; } // ... public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { public ViewHolder(View itemView) { super(itemView); itemView.setOnClickListener(this); } @Override public void onClick(View v) { if (mOnItemClickListener != null) { mOnItemClickListener.onItemClick(v, getAdapterPosition()); } } } } 2. RecyclerView的Activity或Fragment中实现OnItemClickListener接口 public class MainActivity extends AppCompatActivity implements MyAdapter.OnItemClickListener { private RecyclerView mRecyclerView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = findViewById(R.id.recycler_view); mAdapter = new MyAdapter(getData()); mAdapter.setOnItemClickListener(this); mRecyclerView.setAdapter(mAdapter); } @Override public void onItemClick(View view, int position) { // 处理item点击事件 } } 注意:RecyclerViewitem点击事件也可以通过设置item的OnClickListener来实现,但是这种方式需要在ViewHolder中手动设置item点击事件,不太方便。建议使用上述方式来实现RecyclerViewitem点击事件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值