From 5eedfa91a121e2c6b1ae3ac14af94bc9bbf5d1f2 Mon Sep 17 00:00:00 2001 From: md Date: Fri, 18 Jun 2021 20:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=B0=E5=BD=95=E5=BE=85?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=20=E5=88=A0=E9=99=A4=20=E5=85=A8?= =?UTF-8?q?=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../outdoor/adapter/StaySubmitAdapter.java | 68 +++++++++++++++++-- .../outdoor/fragment/RoadFragment.java | 10 ++- .../outdoor/fragment/StaySubmitFragment.java | 45 +++++++++--- .../com/navinfo/outdoor/room/PoiEntity.java | 10 +++ app/src/main/res/layout/stay_item.xml | 6 +- 6 files changed, 121 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c297aae..b48ec2e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion "29.0.0" - //ndkVersion '23.0.7123448' + ndkVersion '23.0.7123448' defaultConfig { applicationId "com.navinfo.outdoor" diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java index 939914c..ea1198b 100644 --- a/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java +++ b/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java @@ -1,10 +1,13 @@ package com.navinfo.outdoor.adapter; import android.content.Context; +import android.os.Handler; +import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.TextView; @@ -13,26 +16,64 @@ import androidx.recyclerview.widget.RecyclerView; import com.navinfo.outdoor.R; import com.navinfo.outdoor.bean.CapacityMeasureBean; +import com.navinfo.outdoor.room.PoiDatabase; import com.navinfo.outdoor.room.PoiEntity; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; + +import static com.tencent.mapsdk.internal.aaa.getContext; public class StaySubmitAdapter extends RecyclerView.Adapter { private List allRoad = new ArrayList<>(); private Context context; + + public StaySubmitAdapter(Context context) { this.context = context; + } + + public void setAllRoad(List allRoad) { - this.allRoad.addAll(allRoad); + if (this.allRoad!=null) { + this.allRoad.clear(); + this.allRoad.addAll(allRoad); + } notifyDataSetChanged(); } + public void setAllDataChecked(boolean isChecked) { + if (this.allRoad!=null) { + for (PoiEntity entity: this.allRoad) { + entity.setChecked(isChecked); + } + } + } + public void setAllCheckedDelete(){ + new Thread(new Runnable() { + @Override + public void run() { + Iterator iterator = allRoad.iterator(); + while (iterator.hasNext()) { + PoiEntity poiEntity = (PoiEntity) iterator.next(); + if (poiEntity.isChecked()) { + PoiDatabase.getInstance(context).getPoiDao().deletePoiEntity(poiEntity); + iterator.remove(); + } + } + handler.sendEmptyMessage(0x105); + } + }).start(); + } + @NonNull @NotNull @Override @@ -46,7 +87,13 @@ public class StaySubmitAdapter extends RecyclerView.Adapter poiEntities; + private List poiEntities; + public static StaySubmitFragment newInstance(Bundle bundle) { StaySubmitFragment fragment = new StaySubmitFragment(); fragment.setArguments(bundle); return fragment; } + @Override protected int getLayout() { return R.layout.fragment_stay_submit; @@ -66,7 +79,9 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList tvStayResult.setOnClickListener(this::onClick); stayXrv = (XRecyclerView) findViewById(R.id.stay_xrv); cbSelect = (CheckBox) findViewById(R.id.cb_select); + cbSelect.setOnClickListener(this::onClick); tvDelete = (TextView) findViewById(R.id.tv_delete); + tvDelete.setOnClickListener(this::onClick); btnStaySubmit = (Button) findViewById(R.id.btn_stay_submit); stayXrv.setLayoutManager(new LinearLayoutManager(getActivity())); stayXrv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); @@ -77,6 +92,13 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList stayXrv.setLoadingMoreEnabled(false); staySubmitAdapter = new StaySubmitAdapter(getContext()); stayXrv.setAdapter(staySubmitAdapter); + cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + staySubmitAdapter.setAllDataChecked(isChecked); + staySubmitAdapter.notifyDataSetChanged(); + } + }); stayXrv.getDefaultFootView().setNoMoreHint("加载完毕"); stayXrv.setLoadingListener(new XRecyclerView.LoadingListener() { @Override @@ -91,6 +113,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList }); } + @Override protected void initData() { super.initData(); @@ -100,21 +123,19 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList new Thread(new Runnable() { @Override public void run() { - List allRoad = poiDao.getAllPoi(); + poiEntities = poiDao.getAllPoi(); getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Log.d("TAG", "run: " + allRoad.toString()); -// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm "); -// Date curDate = new Date(System.currentTimeMillis());//获取当前时间 -// String str = formatter.format(curDate); -// - poiEntities.addAll(allRoad); - staySubmitAdapter.setAllRoad(allRoad); + Log.d("TAG", "run: " + poiEntities.toString()); + staySubmitAdapter.setAllRoad(poiEntities); + staySubmitAdapter.notifyDataSetChanged(); } }); } + }).start(); + } @Override @@ -128,10 +149,14 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList @Override public void onClick(String text, int index) { tvStayType.setText(text); - } }); break; + + case R.id.tv_delete: + staySubmitAdapter.setAllCheckedDelete(); + break; } } + } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java b/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java index 13de07d..f59b2e8 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java +++ b/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java @@ -27,6 +27,16 @@ public class PoiEntity { private double precision;//金额 private String photo;//照片信息 private String extend;//添加字段 + private boolean checked; + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + public String getExtend() { return extend; } diff --git a/app/src/main/res/layout/stay_item.xml b/app/src/main/res/layout/stay_item.xml index 160a740..03b406f 100644 --- a/app/src/main/res/layout/stay_item.xml +++ b/app/src/main/res/layout/stay_item.xml @@ -1,12 +1,12 @@