xrecyclerview的刷新和加载
来源:互联网 发布:php pack 转换c 编辑:程序博客网 时间:2024/06/16 01:34
首先是导入依赖
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
然后写布局
<com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/xrv" android:layout_width="match_parent" android:layout_height="match_parent" />
然后就可以去写适配器了,其实和以前一样的
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<OrderBean.DataBean> list; private final CancleOrderPresenter cancleOrderPresenter; public MyAdapter(Context context, List<OrderBean.DataBean> list) { this.context = context; this.list = list; cancleOrderPresenter = new CancleOrderPresenter(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { final OrderBean.DataBean dataBean = list.get(position); MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.tv_title.setText(dataBean.getTitle()); int status = dataBean.getStatus(); if (status == 0) { myViewHolder.tv_status.setText("待支付"); myViewHolder.tv.setText("取消订单"); myViewHolder.tv_status.setTextColor(Color.RED); } else if (status == 1) { myViewHolder.tv_status.setText("已支付"); myViewHolder.tv.setText("查看订单"); myViewHolder.tv_status.setTextColor(Color.BLACK); } else { myViewHolder.tv_status.setText("已取消"); myViewHolder.tv.setText("查看订单"); myViewHolder.tv_status.setTextColor(Color.BLACK); } myViewHolder.tv_price.setText("价格:" + dataBean.getPrice()); myViewHolder.tv_time.setText("创建时间:" + dataBean.getCreatetime()); myViewHolder.tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(context) .setTitle("提示") .setMessage("确定取消订单吗?") .setPositiveButton("是", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { cancleOrderPresenter.cancleOrder("1", dataBean.getOrderid() + ""); } }) .setNegativeButton("否", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .show(); } }); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { private final TextView tv_title; private final TextView tv_status; private final TextView tv_price; private final TextView tv_time; private final TextView tv; public MyViewHolder(View itemView) { super(itemView); tv_title = itemView.findViewById(R.id.tv_title); tv_status = itemView.findViewById(R.id.tv_status); tv_price = itemView.findViewById(R.id.tv_price); tv_time = itemView.findViewById(R.id.tv_time); tv = itemView.findViewById(R.id.tv); } }}
最后就是去主页面配置布局管理器和适配器等
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mXrv.setLayoutManager(new LinearLayoutManager(this)); myAdapter = new MyAdapter(this, list); mXrv.setAdapter(myAdapter); //想去获取数据,测试一下数据是否获取到 mainPresenter = new MainPresenter(this); mainPresenter.getOrder(true, "1", page + ""); mXrv.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { //刷新 page = 1; mainPresenter.getOrder(true, "1", page + ""); } @Override public void onLoadMore() { //加载更多 page++; mainPresenter.getOrder(false, "1", page + ""); } }); } @Override protected void onDestroy() { super.onDestroy(); mainPresenter.dettach(); } private void initView() { mRb1 = (RadioButton) findViewById(R.id.rb1); mRb2 = (RadioButton) findViewById(R.id.rb2); mRb3 = (RadioButton) findViewById(R.id.rb3); mRg = (RadioGroup) findViewById(R.id.rg); mXrv = (XRecyclerView) findViewById(R.id.xrv); mIvPop = (ImageView) findViewById(R.id.iv_pop); mIvPop.setOnClickListener(this); } @Override public void showData(boolean isRefresh, List<OrderBean.DataBean> newList) { if (isRefresh) { //如果是刷新 list.clear(); list.addAll(newList); mXrv.refreshComplete(); } else { //如果是加载更多 list.addAll(newList);// mXrv.loadMoreComplete();// if (list.size() == 总条目数) { mXrv.setLoadingMoreEnabled(false);// } } myAdapter.notifyDataSetChanged(); }
下面去p层调用数据
public class MainPresenter { private OrderModel orderModel; private IMainActivity iMainActivity; public MainPresenter(IMainActivity iMainActivity) { orderModel = new OrderModel(); this.iMainActivity = iMainActivity; } public void getOrder(final boolean isRefresh, String status, String page) { orderModel.getOrder(status, page, new OnNetListener<OrderBean>() { @Override public void onSuccess(OrderBean orderBean) { iMainActivity.showData(isRefresh, orderBean.getData()); } @Override public void onFailure(Exception e) { } }); } public void dettach() { if (iMainActivity != null) { iMainActivity = null; } }}
阅读全文
0 0
- XRecyclerView的刷新和加载
- xrecyclerview的刷新和加载
- RecyclerView的刷新和加载--XRecyclerView
- 可上拉加载和下拉刷新的XRecyclerView
- XRecyclerView的下拉刷新和上拉加载
- XRecyclerView下拉刷新和上拉加载
- xRecyclerView的刷新,加载更多,多条目
- XRecyclerView的上拉加载,下拉刷新
- XRecyclerView刷新、加载
- XRecyclerview刷新加载
- XRecyclerView 刷新加载
- MVP和sqlite数据库,XRecyclerView上啦加载下拉刷新的第三方注册登录,列表
- XRecyclerView 实现下拉刷新和上拉加载更多
- xRecyclerView简单实现下拉刷新和上拉加载
- xRecyclerView简单实现下拉刷新和上拉加载
- XRecyclerView上下拉加载刷新
- 使用XRecyclerview刷新&加载更多
- 支持下拉刷新上拉加载xrecyclerview的基本使用
- TSMenuLabel 给UILabel加menuController的控件
- Java初识继承和多态
- 【Scikit-Learn 中文文档】交叉分解
- python 使用ThreadPool 创建线程,后台执行并check
- 【Scikit-Learn 中文文档 】安装 scikit-learn | ApacheCN
- xrecyclerview的刷新和加载
- 面试题6:重建二叉树
- Line的配置模式及cisco常用show命令
- JavaScript——引用类型之Array篇(数组的基本操作)
- HDOJ 畅通工程 JAVA 1232
- javax.mail.AuthenticationFailedException: 535 Error: authentication failed
- Android audio切换设备通道流程
- STM32学习笔记(1):位带操作(Bit_band Operations)
- angularjs的添加和非空判断