From 5b602b536c5be89b2cbfd211025236fb41ba2fa3 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期一, 18 十二月 2023 17:46:00 +0800 Subject: [PATCH] 充值记录分页加载 补卡用户列表分页加载 通信模块添加日志方便分析长时间链接后不能通讯问题 --- app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java | 103 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 81 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java index f6c182b..053aaa1 100644 --- a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java @@ -8,13 +8,24 @@ import android.view.View; import android.widget.AdapterView; +import androidx.recyclerview.widget.LinearLayoutManager; + import com.dayu.recharge.adapter.NewCardAdapter; +import com.dayu.recharge.adapter.ReplacementAdapter; import com.dayu.recharge.databinding.ActivityReplacementBinding; import com.dayu.recharge.dbBean.UserCardBean; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.EdtDialog; +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; /** * Created by Android Studio. @@ -24,42 +35,90 @@ * 澶囨敞锛� 琛ュ崱鐣岄潰 */ public class ReplacementActivity extends BaseActivity { - ActivityReplacementBinding binding; - List<UserCardBean> userCardBeanList; - NewCardAdapter adapter; + ActivityReplacementBinding newcardListBinding; + List<UserCardBean> userCardBeanList = new ArrayList<>(); + ReplacementAdapter adapter; + long beginTime; + long endTime; + int page = 0; + + //姣忛〉鏁版嵁鏉℃暟 + int limit = 30; + RefreshLayout myRefreshLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - binding = ActivityReplacementBinding.inflate(LayoutInflater.from(this)); - setContentView(binding.getRoot()); + newcardListBinding = ActivityReplacementBinding.inflate(LayoutInflater.from(this)); + setContentView(newcardListBinding.getRoot()); setRightButton(); - setData(); - initView(); + initList(); + getList(); } - private void initView() { - binding.newCardListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + + public void itemClick(View view) { + UserCardBean userCardBean = userCardBeanList.get((int) view.getTag()); + Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class); + intent.putExtra("dbUserCard", userCardBean); + startActivity(intent); + } + + private void initList() { + myRefreshLayout = (RefreshLayout) newcardListBinding.refreshLayout; + myRefreshLayout.setEnableRefresh(false); + myRefreshLayout.setRefreshFooter(new ClassicsFooter(this)); + myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - UserCardBean userCardBean = userCardBeanList.get(position); - Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class); - intent.putExtra("dbUserCard", userCardBean); - startActivity(intent); + public void onLoadMore(RefreshLayout refreshlayout) { + page = page + 1; + getList(); } }); + adapter = new ReplacementAdapter(this, userCardBeanList); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + newcardListBinding.recyclerView.setLayoutManager(layoutManager); + newcardListBinding.recyclerView.setAdapter(adapter); } - private void setData() { - try { - userCardBeanList = baseDao.userCardDao().findAll(); - } catch (Exception e) { - e.printStackTrace(); - } - adapter = new NewCardAdapter(this, userCardBeanList); -// binding.newCardListView.setAdapter(adapter); + + private void getList() { + // 鍒涘缓涓�涓� Observable + Observable<List<UserCardBean>> observable = Observable.create(emitter -> { + // 鍦ㄨ繖閲屾墽琛屽紓姝ユ搷浣� + List<UserCardBean> beanList; + if (beginTime == 0 && endTime == 0) { + beanList = asynchBaseDao.userCardDao().findAll(page * limit, limit); + } else { + beanList = asynchBaseDao.userCardDao().findByTime(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) { + userCardBeanList.addAll(result); + } + adapter.notifyDataSetChanged(); + }, + error -> { + // 澶勭悊閿欒 + System.err.println("Error: " + error.getMessage()); + } + ); } + EdtDialog edtDialog; private void setRightButton() { -- Gitblit v1.8.0