添加记录待提交的 删除 全选功能
This commit is contained in:
parent
6b17e85f27
commit
5eedfa91a1
@ -3,7 +3,7 @@ apply plugin: 'com.android.application'
|
|||||||
android {
|
android {
|
||||||
compileSdkVersion 29
|
compileSdkVersion 29
|
||||||
buildToolsVersion "29.0.0"
|
buildToolsVersion "29.0.0"
|
||||||
//ndkVersion '23.0.7123448'
|
ndkVersion '23.0.7123448'
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.navinfo.outdoor"
|
applicationId "com.navinfo.outdoor"
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package com.navinfo.outdoor.adapter;
|
package com.navinfo.outdoor.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Message;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.CompoundButton;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@ -13,26 +16,64 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.navinfo.outdoor.R;
|
import com.navinfo.outdoor.R;
|
||||||
import com.navinfo.outdoor.bean.CapacityMeasureBean;
|
import com.navinfo.outdoor.bean.CapacityMeasureBean;
|
||||||
|
import com.navinfo.outdoor.room.PoiDatabase;
|
||||||
import com.navinfo.outdoor.room.PoiEntity;
|
import com.navinfo.outdoor.room.PoiEntity;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.tencent.mapsdk.internal.aaa.getContext;
|
||||||
|
|
||||||
public class StaySubmitAdapter extends RecyclerView.Adapter<StaySubmitAdapter.ViewHolder> {
|
public class StaySubmitAdapter extends RecyclerView.Adapter<StaySubmitAdapter.ViewHolder> {
|
||||||
private List<PoiEntity> allRoad = new ArrayList<>();
|
private List<PoiEntity> allRoad = new ArrayList<>();
|
||||||
private Context context;
|
private Context context;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public StaySubmitAdapter(Context context) {
|
public StaySubmitAdapter(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setAllRoad(List<PoiEntity> allRoad) {
|
public void setAllRoad(List<PoiEntity> allRoad) {
|
||||||
|
if (this.allRoad!=null) {
|
||||||
|
this.allRoad.clear();
|
||||||
this.allRoad.addAll(allRoad);
|
this.allRoad.addAll(allRoad);
|
||||||
|
}
|
||||||
notifyDataSetChanged();
|
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
|
@NonNull
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
@ -46,7 +87,13 @@ public class StaySubmitAdapter extends RecyclerView.Adapter<StaySubmitAdapter.Vi
|
|||||||
PoiEntity poiEntity = allRoad.get(position);
|
PoiEntity poiEntity = allRoad.get(position);
|
||||||
holder.tvName.setText(poiEntity.getName());
|
holder.tvName.setText(poiEntity.getName());
|
||||||
holder.tvDay.setText(poiEntity.getCreateTime());
|
holder.tvDay.setText(poiEntity.getCreateTime());
|
||||||
|
holder.cbUnSubmit.setChecked(allRoad.get(position).isChecked());
|
||||||
|
holder.cbUnSubmit.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||||
|
allRoad.get(position).setChecked(isChecked);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -55,16 +102,27 @@ public class StaySubmitAdapter extends RecyclerView.Adapter<StaySubmitAdapter.Vi
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
private TextView tvName;
|
private TextView tvName;
|
||||||
private TextView tvDay;
|
private TextView tvDay;
|
||||||
private CheckBox cbAll;
|
private CheckBox cbUnSubmit;
|
||||||
|
|
||||||
public ViewHolder(@NonNull @NotNull View itemView) {
|
public ViewHolder(@NonNull @NotNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
tvName = itemView.findViewById(R.id.tv_road_name);
|
tvName = itemView.findViewById(R.id.tv_road_name);
|
||||||
tvDay = itemView.findViewById(R.id.tv_road_day);
|
tvDay = itemView.findViewById(R.id.tv_road_day);
|
||||||
cbAll = itemView.findViewById(R.id.cb_all);
|
cbUnSubmit = itemView.findViewById(R.id.cb_unSubmit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Handler handler = new Handler() {
|
||||||
|
@Override
|
||||||
|
public void handleMessage(@NonNull @NotNull Message msg) {
|
||||||
|
super.handleMessage(msg);
|
||||||
|
switch (msg.what) {
|
||||||
|
case 0x105:
|
||||||
|
notifyDataSetChanged();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,10 @@ import com.navinfo.outdoor.room.PoiDao;
|
|||||||
import com.navinfo.outdoor.room.PoiDatabase;
|
import com.navinfo.outdoor.room.PoiDatabase;
|
||||||
import com.navinfo.outdoor.room.PoiEntity;
|
import com.navinfo.outdoor.room.PoiEntity;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,7 +74,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
|||||||
tvPictures.setOnClickListener(this::onClick);
|
tvPictures.setOnClickListener(this::onClick);
|
||||||
etRoadName = (EditText) findViewById(R.id.et_road_name);
|
etRoadName = (EditText) findViewById(R.id.et_road_name);
|
||||||
ivRoadPicture = (ImageView) findViewById(R.id.iv_road_picture);
|
ivRoadPicture = (ImageView) findViewById(R.id.iv_road_picture);
|
||||||
Glide.with(getContext()).load(getLocalVideoBitmap(String.valueOf(R.drawable.bg_01))).into(ivRoadPicture);
|
// Glide.with(getContext()).load(getLocalVideoBitmap(String.valueOf(R.drawable.bg_01))).into(ivRoadPicture);
|
||||||
rbCar = (RadioButton) findViewById(R.id.rb_car);
|
rbCar = (RadioButton) findViewById(R.id.rb_car);
|
||||||
rbBicycle = (RadioButton) findViewById(R.id.rb_bicycle);
|
rbBicycle = (RadioButton) findViewById(R.id.rb_bicycle);
|
||||||
rbWalking = (RadioButton) findViewById(R.id.rb_walking);
|
rbWalking = (RadioButton) findViewById(R.id.rb_walking);
|
||||||
@ -157,6 +160,11 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
|
|||||||
} else {
|
} else {
|
||||||
poiEntity.setDescribe(desc);
|
poiEntity.setDescribe(desc);
|
||||||
}
|
}
|
||||||
|
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTimeInMillis(System.currentTimeMillis());
|
||||||
|
String format = formatter.format(calendar.getTime());
|
||||||
|
poiEntity.setCreateTime(format);
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
package com.navinfo.outdoor.fragment;
|
package com.navinfo.outdoor.fragment;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Message;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.CompoundButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
@ -25,8 +32,12 @@ import com.navinfo.outdoor.room.PoiDao;
|
|||||||
import com.navinfo.outdoor.room.PoiDatabase;
|
import com.navinfo.outdoor.room.PoiDatabase;
|
||||||
import com.navinfo.outdoor.room.PoiEntity;
|
import com.navinfo.outdoor.room.PoiEntity;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,13 +53,15 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
private PoiDao poiDao;
|
private PoiDao poiDao;
|
||||||
private TextView tvStayType;
|
private TextView tvStayType;
|
||||||
private TextView tvStayResult;
|
private TextView tvStayResult;
|
||||||
private ArrayList<Object> poiEntities;
|
private List<PoiEntity> poiEntities;
|
||||||
|
|
||||||
|
|
||||||
public static StaySubmitFragment newInstance(Bundle bundle) {
|
public static StaySubmitFragment newInstance(Bundle bundle) {
|
||||||
StaySubmitFragment fragment = new StaySubmitFragment();
|
StaySubmitFragment fragment = new StaySubmitFragment();
|
||||||
fragment.setArguments(bundle);
|
fragment.setArguments(bundle);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayout() {
|
protected int getLayout() {
|
||||||
return R.layout.fragment_stay_submit;
|
return R.layout.fragment_stay_submit;
|
||||||
@ -66,7 +79,9 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
tvStayResult.setOnClickListener(this::onClick);
|
tvStayResult.setOnClickListener(this::onClick);
|
||||||
stayXrv = (XRecyclerView) findViewById(R.id.stay_xrv);
|
stayXrv = (XRecyclerView) findViewById(R.id.stay_xrv);
|
||||||
cbSelect = (CheckBox) findViewById(R.id.cb_select);
|
cbSelect = (CheckBox) findViewById(R.id.cb_select);
|
||||||
|
cbSelect.setOnClickListener(this::onClick);
|
||||||
tvDelete = (TextView) findViewById(R.id.tv_delete);
|
tvDelete = (TextView) findViewById(R.id.tv_delete);
|
||||||
|
tvDelete.setOnClickListener(this::onClick);
|
||||||
btnStaySubmit = (Button) findViewById(R.id.btn_stay_submit);
|
btnStaySubmit = (Button) findViewById(R.id.btn_stay_submit);
|
||||||
stayXrv.setLayoutManager(new LinearLayoutManager(getActivity()));
|
stayXrv.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
stayXrv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
|
stayXrv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
|
||||||
@ -77,6 +92,13 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
stayXrv.setLoadingMoreEnabled(false);
|
stayXrv.setLoadingMoreEnabled(false);
|
||||||
staySubmitAdapter = new StaySubmitAdapter(getContext());
|
staySubmitAdapter = new StaySubmitAdapter(getContext());
|
||||||
stayXrv.setAdapter(staySubmitAdapter);
|
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.getDefaultFootView().setNoMoreHint("加载完毕");
|
||||||
stayXrv.setLoadingListener(new XRecyclerView.LoadingListener() {
|
stayXrv.setLoadingListener(new XRecyclerView.LoadingListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -91,6 +113,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
super.initData();
|
super.initData();
|
||||||
@ -100,21 +123,19 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
List<PoiEntity> allRoad = poiDao.getAllPoi();
|
poiEntities = poiDao.getAllPoi();
|
||||||
getActivity().runOnUiThread(new Runnable() {
|
getActivity().runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Log.d("TAG", "run: " + allRoad.toString());
|
Log.d("TAG", "run: " + poiEntities.toString());
|
||||||
// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm ");
|
staySubmitAdapter.setAllRoad(poiEntities);
|
||||||
// Date curDate = new Date(System.currentTimeMillis());//获取当前时间
|
staySubmitAdapter.notifyDataSetChanged();
|
||||||
// String str = formatter.format(curDate);
|
|
||||||
//
|
|
||||||
poiEntities.addAll(allRoad);
|
|
||||||
staySubmitAdapter.setAllRoad(allRoad);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}).start();
|
}).start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -128,10 +149,14 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(String text, int index) {
|
public void onClick(String text, int index) {
|
||||||
tvStayType.setText(text);
|
tvStayType.setText(text);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case R.id.tv_delete:
|
||||||
|
staySubmitAdapter.setAllCheckedDelete();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -27,6 +27,16 @@ public class PoiEntity {
|
|||||||
private double precision;//金额
|
private double precision;//金额
|
||||||
private String photo;//照片信息
|
private String photo;//照片信息
|
||||||
private String extend;//添加字段
|
private String extend;//添加字段
|
||||||
|
private boolean checked;
|
||||||
|
|
||||||
|
public boolean isChecked() {
|
||||||
|
return checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChecked(boolean checked) {
|
||||||
|
this.checked = checked;
|
||||||
|
}
|
||||||
|
|
||||||
public String getExtend() {
|
public String getExtend() {
|
||||||
return extend;
|
return extend;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="100dp"
|
android:layout_height="90dp"
|
||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@ -34,7 +34,7 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@id/tv_road_name"/>
|
app:layout_constraintTop_toBottomOf="@id/tv_road_name"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/cb_all"
|
android:id="@+id/cb_unSubmit"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user