Android ListView和RecyclerView +下拉刷新 自动刷新 显示后台返回的数据

优质最新项目参考:https://github.com/scwang90/SmartRefreshLayout 

@Route(path = "/com/RepaymentAct")
public class RepaymentAct extends BaseActivity  {
    /*教程  https://blog.csdn.net/zhangphil/article/details/77367432*/
    private static final int SUANXIN = 0x12;
    private static final  int MSG_TIME =1;

    @Autowired
    String strborrowId;
    private String mborrowId;
    private Drawable isDrawable;
    private int needTerm;
    private ListView repayment_list_view;
    private TextView repayment_needTerm_tv;
    private RepaymentVm repaymentVm;
    private SwipeRefreshLayout repayment_swipereresh;
    private static BaseAdapter adapter;//要实现的类
    private List<RepaymentVm> repaymenList = new ArrayList<>();//实体类
    private TextView repayment_state_10_tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.repayment_act);
        mborrowId = strborrowId;
        repayment_needTerm_tv = (TextView) findViewById(R.id.repayment_needTerm_tv);
        repayment_list_view = (ListView) findViewById(R.id.repayment_list_view);
        repayment_swipereresh = (SwipeRefreshLayout) findViewById(R.id.repayment_swipereresh);//刷新组件

        RepayDetail();
        getAdapter();
        lvClick();
//自动刷新
creditBank_swl.post(new Runnable() {
            @Override
            public void run() {
                mAdapter.notifyDataSetChanged();
                creditBank_swl.setRefreshing(true);
                new Thread() {
                    @Override
                    public void run() {
                        try {
                            Thread.sleep(500);
                            creditList.clear();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        mHandler.sendEmptyMessage(ISUQ);
                    }
                }.start();
            }
        });

//手动下拉刷新        repayment_swipereresh.setColorSchemeResources(android.R.color.holo_blue_bright,
                android.R.color.holo_green_light, android.R.color.holo_orange_light);
        repayment_swipereresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {//刷新方法
                adapter.notifyDataSetChanged();

                new Thread(){
                    @Override
                    public void run() {
                        try {
                            Thread.sleep(5000);
                            repaymenList.clear();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        mHandler.sendEmptyMessage(SUANXIN);
                    }
                }.start();
            }
        });



    }

    //后台接口数据
    private void RepayDetail() {
        Call<RepaymentRec> callCode = RDClient.getService(UserService.class).getRepayment(mborrowId);
        Log.i("RepaymentCtrl__", "RepaymentCtrl=" + mborrowId);
        callCode.enqueue(new RequestCallBack<RepaymentRec>() {
            @Override
            public void onSuccess(Call<RepaymentRec> call, Response<RepaymentRec> response) {
                RepaymentData(response.body().getData().getList());
                needTerm = response.body().getData().getNeedTerm();
                repayment_needTerm_tv.setText(Integer.toString(needTerm));
            }
        });
    }


    private void RepaymentData(List<RepaymentRec.DataBean.ListBean> list) {
        if (null != list && list.size() != 0) {

            for (RepaymentRec.DataBean.ListBean rec : list) {
                if (rec != null) {
                    repaymentVm = new RepaymentVm();
                    if (rec.getState().equals("10")) {//已
                        isDrawable = getResources().getDrawable(R.mipmap.yes_re_icon);
                    }
                    if (rec.getState().equals("20")) {//没有//灰色图片
                        isDrawable = getResources().getDrawable(R.mipmap.no_icon);

                    }
                    if (rec.getState().equals("30")) {//立即
                        isDrawable = getResources().getDrawable(R.mipmap.re_icon);

                    }
                    repaymentVm.setId(rec.getId());
                    repaymentVm.setTerm(rec.getTerm());
                    repaymentVm.setNum(rec.getNum());
                    repaymentVm.setAmount(rec.getAmount());
                    repaymentVm.setLateCharge(rec.getLateCharge());
                    repaymentVm.setLateDay(rec.getLateDay());
                    repaymentVm.setRepayTime(rec.getRepayTime());
                    repaymentVm.setState(isDrawable);
                    adapter.notifyDataSetChanged();
                    repaymenList.add(repaymentVm);


                }


            }
        }


    }

    private void getAdapter() {
        adapter = new BaseAdapter() {
            @Override
            public int getCount() {
                if (repaymenList == null) {
                    return 0;
                }
                return repaymenList.size();//数目

            }

            @Override
            public long getItemId(int position) {//取在列表中与指定索引对应的行id
                return position;
            }


            @Override
            public Object getItem(int position) {//获取数据集中与指定索引对应的数据项
                return repaymenList.get(position);
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                LayoutInflater inflater = RepaymentAct.this.getLayoutInflater();
                View view;
                if (convertView == null) {
                    //因为getView()返回的对象,adapter会自动赋给ListView
                    view = inflater.inflate(R.layout.repayment_adap, null);
                } else {
                    view = convertView;
                }
                mHandler.sendEmptyMessage(MSG_TIME);
                TextView repayment_num_tv = (TextView) view.findViewById(R.id.repayment_num_tv);
                TextView repayment_term_tv = (TextView) view.findViewById(R.id.repayment_term_tv);
                TextView repayment_repayTime_tv = (TextView) view.findViewById(R.id.repayment_repayTime_tv);
                TextView repayment_amount_tv = (TextView) view.findViewById(R.id.repayment_amount_tv);
                repayment_state_10_tv = (TextView) view.findViewById(R.id.repayment_state_10_tv);

                if (repaymenList!=null && repaymenList.size()>0){
                    repayment_num_tv.setText(Integer.toString(repaymenList.get(position).getNum()));
                    repayment_term_tv.setText(Integer.toString(repaymenList.get(position).getTerm()));
                    repayment_repayTime_tv.setText(repaymenList.get(position).getRepayTime());
                    repayment_amount_tv.setText(Integer.toString(repaymenList.get(position).getAmount()));
                    repayment_state_10_tv.setBackgroundDrawable(repaymenList.get(position).getState());
                }

                return view;
            }


        };

        repayment_list_view.setAdapter(adapter);
    }
    private Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case SUANXIN:
                    adapter.notifyDataSetChanged();
                    repayment_swipereresh.setRefreshing(false);
                    RepayDetail();//刷新调用后台数据方法
                    break;
                case MSG_TIME:
                    adapter.notifyDataSetChanged();
                    break;

            }
        }
    };


              
     


}

 <ListView
            android:id="@+id/repay_detail_lv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerInParent="true"
            android:clickable="false"
            android:divider="@null">
        </ListView>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值