From 96232cdfabd4488b8e1d4d37fa36293adcbe2879 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 15 三月 2024 09:37:47 +0800 Subject: [PATCH] 修復已知bug --- app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java | 87 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 71 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java index 588fcaf..88e8d1b 100644 --- a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java @@ -6,17 +6,28 @@ import android.view.LayoutInflater; import android.view.View; +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.dayu.recharge.adapter.NewCardAdapter; import com.dayu.recharge.adapter.RechargeAdapter; import com.dayu.recharge.databinding.ActivityRechargeListBinding; import com.dayu.recharge.dbBean.RechargeBean; +import com.dayu.recharge.dbBean.UserCardBean; import com.dayu.recharge.model.RechargeListModel; import com.dayu.recharge.utils.ArithUtil; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.datepicker.CustomDatePicker; import com.dayu.recharge.view.datepicker.DateFormatUtils; +import com.scwang.smart.refresh.footer.ClassicsFooter; +import com.scwang.smart.refresh.layout.api.RefreshLayout; +import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener; import java.util.ArrayList; import java.util.List; + +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.schedulers.Schedulers; /** * Copyright (C), 2023, @@ -35,27 +46,38 @@ long beginTime; long endTime; + int page = 0; + + //姣忛〉鏁版嵁鏉℃暟 + int limit = 30; + RefreshLayout myRefreshLayout; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); rechargeListBinding = ActivityRechargeListBinding.inflate(LayoutInflater.from(this)); setContentView(rechargeListBinding.getRoot()); setRightButton(); - setData(); initDatePicker(); - getTotal(); + initList(); + getList(); } - private void setData() { - - RechargeListModel rechargeListModel = new RechargeListModel(this); - rechargeListModel.getRechargeList().observe(this, myList -> { - rechargeList.clear(); - rechargeList.addAll(myList); - adapter.notifyDataSetChanged(); + private void initList() { + myRefreshLayout = (RefreshLayout) rechargeListBinding.refreshLayout; + myRefreshLayout.setEnableRefresh(false); + myRefreshLayout.setRefreshFooter(new ClassicsFooter(this)); + myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(RefreshLayout refreshlayout) { + page = page + 1; + getList(); + } }); adapter = new RechargeAdapter(this, rechargeList); - rechargeListBinding.rechargeList.setAdapter(adapter); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + rechargeListBinding.recyclerView.setLayoutManager(layoutManager); + rechargeListBinding.recyclerView.setAdapter(adapter); } private void getTotal() { @@ -65,9 +87,46 @@ double b = Double.parseDouble(rechargeList.get(i).getMorny()); total = ArithUtil.add(total, b); } - rechargeListBinding.rechargeTotal.setText("绱鍏呭�硷細" + String.valueOf(total) + "鍏�"); + rechargeListBinding.rechargeTotal.setText("宸插姞杞芥暟鎹疮璁″厖鍊硷細" + String.valueOf(total) + "鍏�"); } + } + + private void getList() { + // 鍒涘缓涓�涓� Observable + Observable<List<RechargeBean>> observable = Observable.create(emitter -> { + // 鍦ㄨ繖閲屾墽琛屽紓姝ユ搷浣� + List<RechargeBean> beanList; + if (beginTime == 0 && endTime == 0) { + beanList = asynchBaseDao.rechargeDao().findAll(page * limit, limit); + } else { + beanList = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime); + } + // 灏嗙粨鏋滃彂閫佺粰瑙傚療鑰� + emitter.onNext(beanList); + emitter.onComplete(); + }); + // 璁㈤槄瑙傚療鑰� + observable.subscribeOn(Schedulers.io()) // 鎸囧畾鍦� IO 绾跨▼鎵ц + .observeOn(AndroidSchedulers.mainThread()) // 鎸囧畾鍦ㄥ崟涓�绾跨▼瑙傚療缁撴灉 + .subscribe( + result -> { + // 鍦ㄨ繖閲屽鐞嗙粨鏋滐紝杩欓噷鏄湪涓荤嚎绋嬩腑 +// System.out.println("Result: " + result); + if (result.size() < limit) { + myRefreshLayout.finishLoadMoreWithNoMoreData(); + } + if (result != null && result.size() > 0) { + rechargeList.addAll(result); + } + adapter.notifyDataSetChanged(); + getTotal(); + }, + error -> { + // 澶勭悊閿欒 + System.err.println("Error: " + error.getMessage()); + } + ); } @@ -109,12 +168,8 @@ TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); } else { endTime = endTime + (1000 * 60 * 60 * 24) - 1; - List<RechargeBean> userList = baseDao.rechargeDao().findByTime(beginTime, endTime); rechargeList.clear(); - rechargeList.addAll(userList); - adapter.notifyDataSetChanged(); - getTotal(); - + getList(); } } }, beginTimestamp, endTimestamp); -- Gitblit v1.8.0