SRecyclerView

本文介绍了一个自定义的SRecyclerView组件的使用方法,包括如何在Android项目中导入、配置及使用该组件实现列表刷新、加载更多等功能,并展示了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码:
https://github.com/HzwSunshine/SRecyclerView

!**在源码里有library 导入可用

在 AndroidManifest.xml中 manifest里面添加

<meta-data
    android:name="com.hzw.srecyclerviewproject.TestSRVModule"
    android:value="SRecyclerViewModule" />

在main方法中写:

刷新适配器的方法:
recyclerView.getAdapter().notifyDataSetChanged();

//可以在xml中配置分割线,也可以在代码中设置分割线
recyclerView.setDivider(Color.LTGRAY, 3, 30, 0);

//这里的适配器使用的一个简易的SRV适配器,同样也可以用于普通的RecyclerView,当然这里也可以用原生的适配器
recyclerView.setAdapter(new SRVAdapter(list));

//如果设置了加载监听,就是需要刷新加载功能,如果没有设置加载监听,那么就没有下拉与底部加载
recyclerView.setLoadListener(new SRecyclerView.LoadListener() {
@Override
public void refresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
refreshData();
recyclerView.refreshComplete();
}
}, 2000);
}

        @Override
        public void loading() {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (list.size() != 30) {
                        loadData();
                        recyclerView.loadingComplete();
                    } else {
                        recyclerView.loadNoMoreData();
                    }
                }
            }, 2000);
        }
    });

//item的点击事件
recyclerView.setItemClickListener(new SRecyclerView.ItemClickListener() {
@Override
public void click(View v, int position) {
Toast.makeText(getApplication(), “位置: ” + position, Toast.LENGTH_SHORT).show();
if (position == 0) {
recyclerView.startRefresh(true);
}
if (position == 1) {
startActivity(new Intent(MainActivity.this, TestActivity.class));
}
}

  • 基于简易适配器的写法
    */
    private static class SRVAdapter extends BaseSRVAdapter {
    SRVAdapter(List list) {
    super(list, R.layout.item_test);
    }

    @Override
    public void onBindView(SRVHolder holder, String data, int i) {
        holder.setTextView(R.id.tv_item_test, data);
    

    // holder.setTextView(0, “123”)
    // .setTextView(1, “234”);
    }
    }

普通适配器:

 private class InitAdapter extends RecyclerView.Adapter<InitAdapter.Holder> {
        private LayoutInflater inflater;
        private ArrayList<Bean> list;

        InitAdapter(ArrayList<Bean> list, Context context) {
            this.list = list;
            inflater = LayoutInflater.from(context);
        }

        @Override
        public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
            View v = inflater.inflate(R.layout.item_test, parent, false);
            return new Holder(v);
        }

        @Override
        public void onBindViewHolder(Holder holder, int position) {
            holder.textView.setText(list.get(position).getTitle());
            Picasso.with(MainActivity.this).load(list.get(position).getImg()).into(holder.img);
        }

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

         class Holder extends RecyclerView.ViewHolder {
            private TextView textView;
            private ImageView img;

            Holder(View itemView) {
                super(itemView);
                textView = (TextView) itemView.findViewById(R.id.tv_item_test);
                img = itemView.findViewById(R.id.img);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值