From 9450bcb197c2de53982368d5c2059b31abed3b87 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 09 八月 2024 17:40:29 +0800 Subject: [PATCH] 齐河联网版程序除补卡相关逻辑 --- qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java | 188 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 188 insertions(+), 0 deletions(-) diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java new file mode 100644 index 0000000..c13fa90 --- /dev/null +++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java @@ -0,0 +1,188 @@ +package com.dayu.qihealonelibrary.activity; + +import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.view.datepicker.CustomDatePicker; +import com.dayu.baselibrary.view.datepicker.DateFormatUtils; +import com.dayu.qihealonelibrary.adapter.NewCardAdapter; +import com.dayu.qihealonelibrary.databinding.ActivityNewcardListQhaBinding; +import com.dayu.qihealonelibrary.dbBean.UserCardBean; +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, + * Author: zuo + * Date: 2023-11-10 19:52 + * Description: 鏂板崱娉ㄥ唽鍒楄〃鐣岄潰 + */ + +public class NewCardListActivity extends BaseActivity { + + + ActivityNewcardListQhaBinding newcardListBinding; + List<UserCardBean> userCardBeanList = new ArrayList<>(); + NewCardAdapter adapter; + private CustomDatePicker beginDatePicker; + private CustomDatePicker endDatePicker; + long beginTime; + long endTime; + + int page = 0; + + //姣忛〉鏁版嵁鏉℃暟 + int limit = 30; + RefreshLayout myRefreshLayout; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + newcardListBinding = ActivityNewcardListQhaBinding.inflate(LayoutInflater.from(this)); + setContentView(newcardListBinding.getRoot()); + setRightButton(); + initDatePicker(); + initList(); + getList(); + } + + private void initList() { + myRefreshLayout = (RefreshLayout) newcardListBinding.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 NewCardAdapter(this, userCardBeanList); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + newcardListBinding.recyclerView.setLayoutManager(layoutManager); + newcardListBinding.recyclerView.setAdapter(adapter); + int totale = baseDao.userCardDao().getUserTotale(); + newcardListBinding.userTotal.setText("寮�鎴锋暟锛�" + totale + ""); + } + + + 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()); + } + ); + } + + + private void setRightButton() { + titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() { + @Override + public void onClick(View v) { + beginDatePicker.show(System.currentTimeMillis()); + } + }); + } + + private void initDatePicker() { + long beginTimestamp = DateFormatUtils.str2Long("2009-05-01", false); + final long endTimestamp = System.currentTimeMillis(); + + // 閫氳繃鏃堕棿鎴冲垵濮嬪寲鏃ユ湡锛屾绉掔骇鍒� + beginDatePicker = new CustomDatePicker(this, "閫夋嫨寮�濮嬫椂闂�", new CustomDatePicker.Callback() { + @Override + public void onTimeSelected(long timestamp) { + beginTime = timestamp; + endDatePicker.show(timestamp); + } + }, beginTimestamp, endTimestamp); + // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂� + beginDatePicker.setCancelable(false); + // 涓嶆樉绀烘椂鍜屽垎 + beginDatePicker.setCanShowPreciseTime(false); + // 涓嶅厑璁稿惊鐜粴鍔� + beginDatePicker.setScrollLoop(false); + // 涓嶅厑璁告粴鍔ㄥ姩鐢� + beginDatePicker.setCanShowAnim(false); + + endDatePicker = new CustomDatePicker(this, "閫夋嫨缁撴潫鏃堕棿", new CustomDatePicker.Callback() { + @Override + public void onTimeSelected(long timestamp) { + endTime = timestamp; + if ((endTime < beginTime) && endTime != beginTime) { + TipUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�"); + } else { +// try { +// endTime = endTime + (1000 * 60 * 60 * 24) - 1; +// List<UserCardBean> userList = baseDao.userCardDao().findByTime(beginTime, endTime); +// userCardBeanList.clear(); +// userCardBeanList.addAll(userList); +// adapter.notifyDataSetChanged(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + endTime = endTime + (1000 * 60 * 60 * 24) - 1; + userCardBeanList.clear(); + getList(); + } + } + }, beginTimestamp, endTimestamp); + // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂� + endDatePicker.setCancelable(false); + // 涓嶆樉绀烘椂鍜屽垎 + endDatePicker.setCanShowPreciseTime(false); + // 涓嶅厑璁稿惊鐜粴鍔� + endDatePicker.setScrollLoop(false); + // 涓嶅厑璁告粴鍔ㄥ姩鐢� + endDatePicker.setCanShowAnim(false); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + endDatePicker.onDestroy(); + beginDatePicker.onDestroy(); + } +} -- Gitblit v1.8.0