package com.dayu.qihealonelibrary.activity; import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT; import android.content.Intent; 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.EdtDialog; import com.dayu.qihealonelibrary.adapter.ReplacementAdapter; import com.dayu.qihealonelibrary.databinding.ActivityReplacementQhaBinding; 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; /** * Created by Android Studio. * author: zuo * Date: 2023-11-20 * Time: 17:32 * 备注: 补卡界面 */ public class ReplacementActivityQHAlone extends BaseActivityQHAlone { ActivityReplacementQhaBinding newcardListBinding; List 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); newcardListBinding = ActivityReplacementQhaBinding.inflate(LayoutInflater.from(this)); setContentView(newcardListBinding.getRoot()); setRightButton(); initList(); getList(); } public void itemClick(View view) { UserCardBean userCardBean = userCardBeanList.get((int) view.getTag()); Intent intent = new Intent(ReplacementActivityQHAlone.this, NFCWreatActivityQHAlone.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 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 getList() { // 创建一个 Observable Observable> observable = Observable.create(emitter -> { // 在这里执行异步操作 List 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() { titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() { @Override public void onClick(View v) { edtDialog = new EdtDialog(ReplacementActivityQHAlone.this, new EdtDialog.DialogBack() { @Override public void onOk(String data) { List beans = baseDao.userCardDao().findByData(data); if (beans != null && beans.size() > 0) { userCardBeanList.clear(); userCardBeanList.addAll(beans); adapter.notifyDataSetChanged(); } else { TipUtil.show("未找到该用户"); } edtDialog.dismiss(); } @Override public void onCancel() { edtDialog.dismiss(); } }); edtDialog.show(); } }); } }