diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/PoiRecycleAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/PoiRecycleAdapter.java index 835d73e..24ecfb1 100644 --- a/app/src/main/java/com/navinfo/outdoor/adapter/PoiRecycleAdapter.java +++ b/app/src/main/java/com/navinfo/outdoor/adapter/PoiRecycleAdapter.java @@ -3,21 +3,18 @@ package com.navinfo.outdoor.adapter; import android.content.Context; import android.text.Editable; import android.text.TextWatcher; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowInsets; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import android.widget.Toast; import androidx.recyclerview.widget.RecyclerView; import com.navinfo.outdoor.R; -import com.navinfo.outdoor.bean.PoiBean; +import com.navinfo.outdoor.bean.PhoneBean; import java.util.ArrayList; import java.util.List; @@ -27,19 +24,19 @@ import java.util.List; */ public class PoiRecycleAdapter extends RecyclerView.Adapter { private Context context; - private List list=new ArrayList<>(); + private List list=new ArrayList<>(); public PoiRecycleAdapter(Context context) { this.context = context; } - public void setList(List list) { + public void setList(List list) { this.list.addAll(list); notifyDataSetChanged(); } public boolean getPhoneBean(){ for (int i = 0; i < list.size(); i++) { - PoiBean poiBean = list.get(i); + PhoneBean poiBean = list.get(i); if (poiBean.getPhone()==null){ return false; } @@ -51,7 +48,7 @@ public class PoiRecycleAdapter extends RecyclerView.Adapter poiBeans; + private ArrayList poiBeans; private Button btnSaveLocal; private Button btnUploading; private PoiDatabase poiDatabase; @@ -96,6 +93,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private Spinner spinnerType; String[] ctype = new String[]{"充电站", "充换电站", "充电桩组", "换电站"};//1."充电站"2 "充换电站"3 "充电桩组"4 "换电站"5 , String[] spinner = new String[]{"存在", "不存在", "无法验证"}; + private int existence=0; private ArrayAdapter adapter; private LinearLayout linearChargingPile; private RecyclerView recyclerStation; @@ -107,6 +105,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. private RelativeLayout linearExist; private Spinner spinnerExist; private Integer body; + private LinearLayout linearContact; + private ContactView contactView; public static ChargingStationFragment newInstance(Bundle bundle) { ChargingStationFragment fragment = new ChargingStationFragment(); @@ -179,6 +179,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } if (isSliding) { // 监听到返回按钮点击事件 + Message obtain = Message.obtain(); obtain.what = Constant.TREASURE_FRAGMENT; obtain.obj = isSliding; @@ -206,11 +207,15 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { + checkBoxLife.setText("保存"); + checkBoxLife.setTextColor(Color.WHITE); Message obtain = Message.obtain(); obtain.what = Constant.MAIN_CHARGING_STATION; obtain.obj = latLng; EventBus.getDefault().post(obtain); } else { + checkBoxLife.setText("编辑"); + checkBoxLife.setTextColor(Color.BLACK); Message obtain = Message.obtain(); obtain.what = Constant.MAIN_CHARGING_CHECKED_STATION; obtain.obj = true; @@ -258,10 +263,13 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. public void onItemSelected(AdapterView parent, View view, int position, long id) { switch (position) { case 0: + existence=0; break; case 1: + existence=1; break; case 2: + existence=2; break; } } @@ -284,6 +292,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. editDescribe = findViewById(R.id.edit_describe); ivPanorama = findViewById(R.id.iv_panorama); ivName = findViewById(R.id.iv_name); + linearContact = findViewById(R.id.linear_contact); ivInternal = findViewById(R.id.iv_internal); ivElse = findViewById(R.id.iv_else); ivScutcheon = findViewById(R.id.iv_scutcheon); @@ -297,11 +306,12 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. rlElse.setOnClickListener(this::onClick); rlScutcheon = findViewById(R.id.rl_scutcheon); rlScutcheon.setOnClickListener(this::onClick); - recyclerPhone = findViewById(R.id.recycler_phone); + + /* recyclerPhone = findViewById(R.id.recycler_phone); recyclerPhone.setLayoutManager(new LinearLayoutManager(getContext())); recyclerPhone.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); poiRecycleAdapter = new PoiRecycleAdapter(getContext()); - recyclerPhone.setAdapter(poiRecycleAdapter); + recyclerPhone.setAdapter(poiRecycleAdapter);*/ recyclerStation = findViewById(R.id.recycler_station); recyclerStation.setLayoutManager(new GridLayoutManager(getContext(), 3)); chargingPileAdapter = new ChargingPileAdapter(getContext()); @@ -340,6 +350,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. latLng.setLatitude(Double.parseDouble(y)); latLng.setLongitude(Double.parseDouble(x)); } + initPhone(); String describe = showPoiEntity.getDescribe();//任务描述 if (describe != null && !describe.equals("")) { editDescribe.setText(describe); @@ -354,9 +365,9 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (!StringUtils.isEmpty(phones[i])) { String[] split = phones[i].split("-"); if (split[0] == phones[i]) { - poiBeans.add(new PoiBean("电话*", phones[i], "", R.drawable.icon_add_bg)); + poiBeans.add(new PhoneBean("电话*", phones[i], "", R.drawable.icon_add_bg)); } else { - poiBeans.add(new PoiBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); + poiBeans.add(new PhoneBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); } } @@ -364,22 +375,29 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (!StringUtils.isEmpty(phones[i])) { String[] split = phones[i].split("-"); if (split[0] == phones[i]) { - poiBeans.add(new PoiBean("", phones[i], "", R.drawable.icon_del_bg)); + poiBeans.add(new PhoneBean("", phones[i], "", R.drawable.icon_del_bg)); } else { - poiBeans.add(new PoiBean("", split[1], split[0], R.drawable.icon_del_bg)); + poiBeans.add(new PhoneBean("", split[1], split[0], R.drawable.icon_del_bg)); } } } } } else { - poiBeans.add(new PoiBean("电话*", "", "", R.drawable.icon_add_bg)); + if (Constant.CODE==null||Constant.CODE.equals("")){ + poiBeans.add(new PhoneBean("电话*", "", "", R.drawable.icon_add_bg)); + }else { + poiBeans.add(new PhoneBean("电话*", "", Constant.CODE, R.drawable.icon_add_bg)); + } + } - body = showPoiEntity.getBodyId(); - poiRecycleAdapter.setList(poiBeans); + body=showPoiEntity.getBodyId(); + contactView = new ContactView(getActivity(), linearContact, poiBeans); + contactView.resetView(); + //poiRecycleAdapter.setList(poiBeans); if (showPoiEntity.getName() != null) { linearExist.setVisibility(View.VISIBLE); - + spinnerExist.setSelection(showPoiEntity.getExistence(), true); } if (showPoiEntity.getPhotoInfo() != null) { for (int i = 0; i < showPoiEntity.getPhotoInfo().size(); i++) { @@ -447,7 +465,39 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. EventBus.getDefault().post(obtain); } } + /** + * 得到电话区号,电话位数 + */ + private void initPhone() { + String encode = Geohash.getInstance().encode(latLng.latitude, latLng.longitude); + if (encode == null) { + Toast.makeText(getActivity(), "没有确定经纬度", Toast.LENGTH_SHORT).show(); + return; + } + showLoadingDialog(); + OkGoBuilder.getInstance() + .Builder(getActivity()) + .url(HttpInterface.GET_PHONES) + .method(OkGoBuilder.GET) + .params(new HttpParams("geo",encode)) + .cls(GetPhoneBean.class) + .callback(new Callback() { + @Override + public void onSuccess(GetPhoneBean getPhoneBean, int id) { + dismissLoadingDialog(); + if (getPhoneBean.getCode()==200){ + String code = getPhoneBean.getBody().getCode(); + Constant.CODE=code; + } + } + @Override + public void onError(Throwable e, int id) { + dismissLoadingDialog(); + Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show(); + } + }).build(); + } public void initRemovePileSharePre() { //获取SharedPreferences对象,方法中两个参数的意思为:第一个name //表示文件名,系统将会在/dada/dada/包名/shared_prefs目录下生成 @@ -469,7 +519,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. editNameContent.setEnabled(false); tvExamine.setEnabled(false); editSiteContent.setEnabled(false); - recyclerPhone.setEnabled(false); + linearContact.setEnabled(false); ivPanorama.setEnabled(false); ivName.setEnabled(false); ivInternal.setEnabled(false); @@ -521,10 +571,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. poiEntity.setName(name); } String site = editSiteContent.getText().toString().trim(); - if (site == null || site.equals("")) { - Toast.makeText(getActivity(), "请输入充电站 地址", Toast.LENGTH_SHORT).show(); - return; - } else { + if (site != null && !site.equals("")) { poiEntity.setAddress(site); } if (latLng == null) { @@ -537,19 +584,13 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. poiEntity.setY(String.valueOf(latLng.latitude)); } String describe = editDescribe.getText().toString().trim(); - if (describe == null || describe.equals("")) { - Toast.makeText(getActivity(), "请输入任务描述", Toast.LENGTH_SHORT).show(); - return; - } else { + if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + boolean phoneBean = contactView.getPhoneBean(); if (phoneBean){ - String list = poiRecycleAdapter.getList(); + String list = contactView.getList(); poiEntity.setTelPhone(list); - }else { - Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); - return; } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama == null) { @@ -586,7 +627,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. } else { infoPhoto.add(new Info(tagScutcheon)); } - + poiEntity.setExistence(existence); poiEntity.setPhotoInfo(infoPhoto); poiEntity.setStation_type(station_type); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -776,9 +817,9 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + boolean phoneBean = contactView.getPhoneBean(); if (phoneBean){ - String list = poiRecycleAdapter.getList(); + String list = contactView.getList(); poiEntity.setTelPhone(list); } String tagPanorama = (String) ivPanorama.getTag(); @@ -808,6 +849,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. calendar.setTimeInMillis(System.currentTimeMillis()); String format = formatter.format(calendar.getTime()); poiEntity.setCreateTime(format); + poiEntity.setExistence(existence); poiEntity.setType(2); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); @@ -853,9 +895,9 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + boolean phoneBean = contactView.getPhoneBean(); if (phoneBean){ - String list = poiRecycleAdapter.getList(); + String list = contactView.getList(); poiEntity.setTelPhone(list); } String tagPanorama = (String) ivPanorama.getTag(); @@ -885,6 +927,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View. calendar.setTimeInMillis(System.currentTimeMillis()); String format = formatter.format(calendar.getTime()); poiEntity.setCreateTime(format); + poiEntity.setExistence(existence); poiEntity.setType(2); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/OtherFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/OtherFragment.java index 610c169..c087b9f 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/OtherFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/OtherFragment.java @@ -3,6 +3,7 @@ package com.navinfo.outdoor.fragment; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.graphics.Color; import android.os.Bundle; import android.os.Message; import android.util.Log; @@ -85,9 +86,6 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis private PoiEntity showPoiEntity; private LatLng latLng; private int station_type = 6; - String[] spinner = new String[]{"存在", "不存在", "无法验证"}; - private RelativeLayout linearExist; - private Spinner spinnerExist; private String takePhotoPath; @@ -182,11 +180,15 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { + checkPot.setText("保存"); + checkPot.setTextColor(Color.WHITE); Message obtain = Message.obtain(); obtain.what = Constant.MAIN_OTHER; obtain.obj = latLng; EventBus.getDefault().post(obtain); } else { + checkPot.setText("编辑"); + checkPot.setTextColor(Color.BLACK); Message obtain = Message.obtain(); obtain.what = Constant.MAIN_CHECKED_OTHER; obtain.obj = true; @@ -206,31 +208,6 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis btnOtherLocal.setOnClickListener(this::onClick); btnOtherUploading = findViewById(R.id.btn_other_uploading); btnOtherUploading.setOnClickListener(this::onClick); - linearExist = findViewById(R.id.linear_exist); - spinnerExist = findViewById(R.id.spinner_exist); - ArrayAdapter adapterExist = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, spinner); - adapterExist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 - spinnerExist.setAdapter(adapterExist); - spinnerExist.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - - break; - case 1: - - break; - case 2: - - break; - } - } - - @Override - public void onNothingSelected(AdapterView parent) { - } - }); //数据展示 initShowPoi(); @@ -269,9 +246,6 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis editOtherDescribe.setText(describe); } - if (showPoiEntity.getName() != null) { - linearExist.setVisibility(View.VISIBLE); - } body = showPoiEntity.getBodyId(); @@ -335,10 +309,7 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis poiEntity.setY(String.valueOf(latLng.latitude)); } String describe = editOtherDescribe.getText().toString().trim(); - if (describe == null || describe.equals("")) { - Toast.makeText(getActivity(), "请输入任务描述", Toast.LENGTH_SHORT).show(); - return; - } else { + if (describe != null&&!describe.equals("")) { poiEntity.setDescribe(describe); } String tagPicture = (String) ivPicture.getTag(); @@ -539,11 +510,6 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis if (tagPictures != null && !tagPictures.equals("")) { arrayList.add(new Info(tagPictures)); } - if (showPoiEntity != null) { - if (showPoiEntity.getTaskId() != 0) { - poiEntity.setTaskId(showPoiEntity.getTaskId()); - } - } poiEntity.setPhotoInfo(arrayList); poiEntity.setStation_type(station_type); DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java index 0179c79..aa67731 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiFragment.java @@ -3,6 +3,7 @@ package com.navinfo.outdoor.fragment; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.graphics.Color; import android.os.Bundle; import android.os.Message; import android.util.Log; @@ -15,6 +16,7 @@ import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Spinner; import android.widget.TextView; @@ -23,12 +25,8 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; -import com.github.lazylibrary.util.DensityUtil; import com.github.lazylibrary.util.StringUtils; import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; @@ -42,13 +40,13 @@ import com.lzy.okgo.OkGo; import com.lzy.okgo.model.HttpParams; import com.lzy.okgo.model.Response; import com.navinfo.outdoor.R; -import com.navinfo.outdoor.adapter.PoiRecycleAdapter; import com.navinfo.outdoor.api.Constant; import com.navinfo.outdoor.base.BaseDrawerFragment; import com.navinfo.outdoor.bean.Info; import com.navinfo.outdoor.bean.OtherUploadPicBean; -import com.navinfo.outdoor.bean.PoiBean; +import com.navinfo.outdoor.bean.PhoneBean; import com.navinfo.outdoor.bean.PoiSaveBean; +import com.navinfo.outdoor.bean.PoiVideoBean; import com.navinfo.outdoor.http.Callback; import com.navinfo.outdoor.http.DialogCallback; import com.navinfo.outdoor.http.HttpInterface; @@ -57,6 +55,7 @@ import com.navinfo.outdoor.room.InsertAndUpdateUtils; import com.navinfo.outdoor.room.PoiDao; import com.navinfo.outdoor.room.PoiDatabase; import com.navinfo.outdoor.room.PoiEntity; +import com.navinfo.outdoor.ui.view.ContactView; import com.navinfo.outdoor.util.Geohash; import com.navinfo.outdoor.util.PhotoPathUtil; import com.tencent.tencentmap.mapsdk.maps.model.LatLng; @@ -82,9 +81,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe private ImageView ivPanorama, ivName, ivInternal, ivCard, ivElse; private TextView tvExamine; private EditText editNameContent, editSiteContent; - private RecyclerView recyclerPhone; - private PoiRecycleAdapter poiRecycleAdapter; - private ArrayList poiBeans; + private ArrayList poiBeans; private Button btnSaveLocal; private Button btnUploading; private PoiDatabase poiDatabase; @@ -94,6 +91,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe private PoiEntity showPoiEntity; private LatLng latLng; String[] spinner = new String[]{"存在", "不存在", "无法验证"}; + private int existence=0; private RelativeLayout linearExist; private Spinner spinnerExist; @@ -104,6 +102,8 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe private String takePhotoPath3; private String takePhotoPath1; private Integer body; + private LinearLayout linearContact; + private ContactView contactView; public static PoiFragment newInstance(Bundle bundle) { PoiFragment fragment = new PoiFragment(); @@ -169,11 +169,15 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { + checkBoxLife.setText("保存"); + checkBoxLife.setTextColor(Color.WHITE); Message obtain = Message.obtain(); obtain.what = Constant.TREASURE_WORD; obtain.obj = latLng; EventBus.getDefault().post(obtain); } else { + checkBoxLife.setText("编辑"); + checkBoxLife.setTextColor(Color.BLACK); Message obtain = Message.obtain(); obtain.what = Constant.TREASURE_CHECKED_WORD; obtain.obj = true; @@ -195,6 +199,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe ivPanorama = findViewById(R.id.iv_panorama); ivName = findViewById(R.id.iv_name); ivInternal = findViewById(R.id.iv_internal); + linearContact = findViewById(R.id.linear_contact); ivCard = findViewById(R.id.iv_card); ivElse = findViewById(R.id.iv_else); rlPanorama = findViewById(R.id.rl_panorama); @@ -217,10 +222,13 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe public void onItemSelected(AdapterView parent, View view, int position, long id) { switch (position) { case 0: + existence=0; break; case 1: + existence=1; break; case 2: + existence=2; break; } } @@ -230,17 +238,16 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe } }); - recyclerPhone = findViewById(R.id.recycler_phone); + /*recyclerPhone = findViewById(R.id.recycler_phone); recyclerPhone.setLayoutManager(new LinearLayoutManager(getContext())); recyclerPhone.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); poiRecycleAdapter = new PoiRecycleAdapter(getContext()); - recyclerPhone.setAdapter(poiRecycleAdapter); + recyclerPhone.setAdapter(poiRecycleAdapter);*/ //数据展示 initShowPoi(); //禁用所有可操作控件 //disables(); - } private void initShowPoi() { @@ -261,6 +268,8 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe latLng.setLatitude(Double.parseDouble(y)); latLng.setLongitude(Double.parseDouble(x)); } + initPhone(); + String describe = showPoiEntity.getDescribe();//任务描述 if (describe != null && !describe.equals("")) { editDescribe.setText(describe); @@ -273,9 +282,9 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (!StringUtils.isEmpty(phones[i])) { String[] split = phones[i].split("-"); if (split[0] == phones[i]) { - poiBeans.add(new PoiBean("电话*", phones[i], "", R.drawable.icon_add_bg)); + poiBeans.add(new PhoneBean("电话*", phones[i], "", R.drawable.icon_add_bg)); } else { - poiBeans.add(new PoiBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); + poiBeans.add(new PhoneBean("电话*", split[1], split[0], R.drawable.icon_add_bg)); } } @@ -283,21 +292,29 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (!StringUtils.isEmpty(phones[i])) { String[] split = phones[i].split("-"); if (split[0] == phones[i]) { - poiBeans.add(new PoiBean("", phones[i], "", R.drawable.icon_del_bg)); + poiBeans.add(new PhoneBean("", phones[i], "", R.drawable.icon_del_bg)); } else { - poiBeans.add(new PoiBean("", split[1], split[0], R.drawable.icon_del_bg)); + poiBeans.add(new PhoneBean("", split[1], split[0], R.drawable.icon_del_bg)); } } } } } else { - poiBeans.add(new PoiBean("电话*", "", "", R.drawable.icon_add_bg)); + if (Constant.CODE==null||Constant.CODE.equals("")){ + poiBeans.add(new PhoneBean("电话*", "", "", R.drawable.icon_add_bg)); + }else { + poiBeans.add(new PhoneBean("电话*", "", Constant.CODE, R.drawable.icon_add_bg)); + } + } body=showPoiEntity.getBodyId(); - poiRecycleAdapter.setList(poiBeans); + contactView = new ContactView(getActivity(), linearContact, poiBeans); + contactView.resetView(); + //poiRecycleAdapter.setList(poiBeans); if (showPoiEntity.getName()!=null){ linearExist.setVisibility(View.VISIBLE); + spinnerExist.setSelection(showPoiEntity.getExistence(), true); } if (showPoiEntity.getPhotoInfo() != null) { for (int i = 0; i < showPoiEntity.getPhotoInfo().size(); i++) { @@ -323,6 +340,40 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe } } + /** + * 得到电话区号,电话位数 + */ + private void initPhone() { + String encode = Geohash.getInstance().encode(latLng.latitude, latLng.longitude); + if (encode == null) { + Toast.makeText(getActivity(), "没有确定经纬度", Toast.LENGTH_SHORT).show(); + return; + } + showLoadingDialog(); + OkGoBuilder.getInstance() + .Builder(getActivity()) + .url(HttpInterface.GET_PHONES) + .method(OkGoBuilder.GET) + .params(new HttpParams("geo",encode)) + .cls(GetPhoneBean.class) + .callback(new Callback() { + @Override + public void onSuccess(GetPhoneBean getPhoneBean, int id) { + dismissLoadingDialog(); + if (getPhoneBean.getCode()==200){ + String code = getPhoneBean.getBody().getCode(); + Constant.CODE=code; + } + } + + @Override + public void onError(Throwable e, int id) { + dismissLoadingDialog(); + Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show(); + } + }).build(); + } + //禁用所有可操作性控件 private void disables() { @@ -330,7 +381,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe editNameContent.setEnabled(false); tvExamine.setEnabled(false); editSiteContent.setEnabled(false); - recyclerPhone.setEnabled(false); + linearContact.setEnabled(false); ivPanorama.setEnabled(false); ivName.setEnabled(false); ivInternal.setEnabled(false); @@ -345,6 +396,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe super.initData(); //存储手机号对象 poiBeans = new ArrayList<>(); + } @@ -377,10 +429,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe poiEntity.setName(name); } String site = editSiteContent.getText().toString().trim(); - if (site == null || site.equals("")) { - Toast.makeText(getActivity(), "请输入poi 地址", Toast.LENGTH_SHORT).show(); - return; - } else { + if (site != null && !site.equals("")) { poiEntity.setAddress(site); } if (latLng == null) { @@ -393,19 +442,13 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe poiEntity.setY(String.valueOf(latLng.latitude)); } String describe = editDescribe.getText().toString().trim(); - if (describe == null || describe.equals("")) { - Toast.makeText(getActivity(), "请输入任务描述", Toast.LENGTH_SHORT).show(); - return; - } else { + if (describe != null&&!describe.equals("")) { poiEntity.setDescribe(describe); } - boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + boolean phoneBean = contactView.getPhoneBean(); if (phoneBean){ - String list = poiRecycleAdapter.getList(); + String list = contactView.getList(); poiEntity.setTelPhone(list); - }else { - Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); - return; } String tagPanorama = (String) ivPanorama.getTag(); if (tagPanorama == null) { @@ -440,6 +483,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe calendar.setTimeInMillis(System.currentTimeMillis()); String format = formatter.format(calendar.getTime()); poiEntity.setCreateTime(format); + poiEntity.setExistence(existence); poiEntity.setType(1); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); @@ -652,9 +696,9 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (describe != null && !describe.equals("")) { poiEntity.setDescribe(describe); } - boolean phoneBean = poiRecycleAdapter.getPhoneBean(); + boolean phoneBean = contactView.getPhoneBean(); if (phoneBean){ - String list = poiRecycleAdapter.getList(); + String list = contactView.getList(); poiEntity.setTelPhone(list); }else { Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show(); @@ -680,17 +724,13 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe if (tagCard != null && !tagCard.equals("")) { infoPhoto.add(new Info(tagCard)); } - if (showPoiEntity != null) { - if (showPoiEntity.getTaskId() != 0) { - poiEntity.setTaskId(showPoiEntity.getTaskId()); - } - } poiEntity.setPhotoInfo(infoPhoto); 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); + poiEntity.setExistence(existence); poiEntity.setType(1); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java index 46c2dcd..fcbf6cb 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/PoiVideoFragment.java @@ -88,9 +88,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick private PoiDatabase poiDatabase; private PoiDao poiDao; private PoiEntity showPoiEntity; - private RelativeLayout linearExist; - private Spinner spinnerExist; - String[] spinner = new String[]{"存在", "不存在", "无法验证"}; private Integer poiVideoBody; private File videoFile; private Button btnPoiVideoUpload; @@ -161,29 +158,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick btnPoiVideoUpload = findViewById(R.id.btn_poi_video_upload); btnPoiVideoUpload.setOnClickListener(this::onClick); rgType = (RadioGroup) findViewById(R.id.rg_type); - linearExist = findViewById(R.id.linear_exist); - spinnerExist = findViewById(R.id.spinner_exist); - ArrayAdapter adapterExist = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, spinner); - adapterExist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 - spinnerExist.setAdapter(adapterExist); - spinnerExist.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - break; - case 1: - break; - case 2: - break; - } - } - - @Override - public void onNothingSelected(AdapterView parent) { - } - }); - ivPoiVideoPicture.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -239,9 +213,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick showPictureType(type); } poiVideoBody=showPoiEntity.getBodyId(); - if (showPoiEntity.getName()!=null){ - linearExist.setVisibility(View.VISIBLE); - } String describe = showPoiEntity.getDescribe();//任务描述 if (describe != null && !describe.equals("")) { etDesc.setText(describe); @@ -324,9 +295,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick String roadExtendJson = gson.toJson(roadExtend); poiEntity.setExtend(roadExtendJson); String desc = etDesc.getText().toString().trim(); - if (desc == null || desc.equals("")) { - Toast.makeText(getContext(), "请输入你的任务描述", Toast.LENGTH_SHORT).show(); - } else { + if (desc != null && !desc.equals("")) { poiEntity.setDescribe(desc); } if (showPoiEntity != null) { @@ -395,7 +364,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick case R.id.tv_pictures: // 根据用户点击的时间为视频名称赋值 - DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HHmmss"); + DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String videoFormatName = formatter.format(new Date()); Intent intent = new Intent(getContext(), PictureActivity.class); intent.putExtra(Constant.INTENT_VIDEO_PATH, Constant.PICTURE_FOLDER + "/" + videoFormatName + ".mp4"); @@ -571,11 +540,6 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick if (desc != null && !desc.equals("")) { poiEntity.setDescribe(desc); } - if (showPoiEntity != null) { - if (showPoiEntity.getTaskId() != 0) { - poiEntity.setTaskId(showPoiEntity.getTaskId()); - } - } DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/RoadFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/RoadFragment.java index 0089f23..9f6da56 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/RoadFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/RoadFragment.java @@ -25,7 +25,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.bumptech.glide.Glide; import com.github.lazylibrary.util.FileUtils; import com.github.lazylibrary.util.ZipUtil; import com.google.gson.Gson; @@ -37,11 +36,9 @@ import com.lzy.okgo.model.HttpParams; import com.lzy.okgo.model.Response; import com.navinfo.outdoor.R; import com.navinfo.outdoor.activity.PictureActivity; -import com.navinfo.outdoor.activity.PicturesActivity; import com.navinfo.outdoor.api.Constant; import com.navinfo.outdoor.base.BaseDrawerFragment; import com.navinfo.outdoor.bean.OtherUploadPicBean; -import com.navinfo.outdoor.bean.PoiBean; import com.navinfo.outdoor.bean.PoiVideoBean; import com.navinfo.outdoor.bean.RoadExtend; import com.navinfo.outdoor.http.Callback; @@ -57,9 +54,7 @@ import com.navinfo.outdoor.util.GeometryTools; import com.tencent.tencentmap.mapsdk.maps.model.LatLng; import org.greenrobot.eventbus.EventBus; -import org.json.JSONArray; import org.json.JSONException; -import org.json.JSONObject; import java.io.File; import java.text.DateFormat; @@ -91,10 +86,12 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList private ImageView ivRoadFinal; private RelativeLayout linearExist; String[] spinner = new String[]{"存在", "不存在", "无法验证"}; + private int existence=0; private Integer body; private Button roadUpload; private File videoFile; private String videoPath; + private Spinner spinnerExist; public static RoadFragment newInstance(Bundle bundle) { RoadFragment fragment = new RoadFragment(); @@ -162,7 +159,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList linearExist = findViewById(R.id.linear_exist); roadUpload = findViewById(R.id.road_upload); roadUpload.setOnClickListener(this::onClick); - Spinner spinnerExist = findViewById(R.id.spinner_exist); + spinnerExist = findViewById(R.id.spinner_exist); ArrayAdapter adapterExist = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, spinner); adapterExist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置下拉列表框的下拉选项样式 spinnerExist.setAdapter(adapterExist); @@ -171,10 +168,13 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList public void onItemSelected(AdapterView parent, View view, int position, long id) { switch (position) { case 0: + existence=0; break; case 1: + existence=1; break; case 2: + existence=2; break; } } @@ -220,6 +220,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList } if (showPoiEntity.getName() != null) { linearExist.setVisibility(View.VISIBLE); + spinnerExist.setSelection(showPoiEntity.getExistence(), true); } String describe = showPoiEntity.getDescribe();//任务描述 if (describe != null && !describe.equals("")) { @@ -305,9 +306,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList String roadExtendJson = gson.toJson(roadExtend); poiEntity.setExtend(roadExtendJson); String desc = etDesc.getText().toString().trim(); - if (desc == null || desc.equals("")) { - Toast.makeText(getContext(), "请输入你的任务描述", Toast.LENGTH_SHORT).show(); - } else { + if (desc != null&& !desc.equals("")) { poiEntity.setDescribe(desc); } if (showPoiEntity != null) { @@ -342,6 +341,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList calendar.setTimeInMillis(System.currentTimeMillis()); String format = formatter.format(calendar.getTime()); poiEntity.setCreateTime(format); + poiEntity.setExistence(existence); poiEntity.setType(4); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); @@ -471,6 +471,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList public void onSuccess(PoiVideoBean poiVideoBean, int id) { dismissLoadingDialog(); body = poiVideoBean.getBody(); + body = poiVideoBean.getBody(); poiEntity.setBodyId(body); poiEntity.setTaskStatus(3); new Thread(new Runnable() { @@ -513,7 +514,6 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList } } } - @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); @@ -560,6 +560,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList calendar.setTimeInMillis(System.currentTimeMillis()); String format = formatter.format(calendar.getTime()); poiEntity.setCreateTime(format); + poiEntity.setExistence(existence); poiEntity.setType(4); poiEntity.setTaskStatus(2); poiEntity.setIsLocalData(1); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java index 093bb4d..073ed4f 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -780,7 +780,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen initCheckedMarker(Constant.CHARGING_STATION_WORD); } } else if (data.what == Constant.MAIN_CHARGING_PILE) {//充电桩采集-移动位置 - initPileMarker((LatLng) data.obj); + BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_pile_have_bg); + initPileMarker((LatLng) data.obj,pileDescriptor); } else if (data.what == Constant.MAIN_CHARGING_CHECKED_PILE) {//充电桩采集-确定位置 if ((boolean) data.obj) { initCheckedMarker(Constant.CHARGING_PILE_WORD); @@ -904,7 +905,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } - private void initPileMarker(LatLng latLng) { + private void initPileMarker(LatLng latLng,BitmapDescriptor bitmapDescriptor) { CameraUpdate cameraSigma = CameraUpdateFactory.newCameraPosition(new CameraPosition( latLng, //中心点坐标,地图目标经纬度 tencentMap.getCameraPosition().zoom, //目标缩放级别 @@ -916,7 +917,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen screenPosition = tencentMap.getProjection().toScreenLocation(latLng); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); //创建Marker对象之前,设置属性 - markerPoi = tencentMap.addMarker(new MarkerOptions(latLng)); + markerPoi = tencentMap.addMarker(new MarkerOptions(latLng).icon(bitmapDescriptor)); markerPoi.setFixingPoint(screenPosition.x, screenPosition.y); } diff --git a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java index 230c29c..2681f46 100644 --- a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java +++ b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java @@ -68,10 +68,8 @@ public class HttpInterface { public static final String POI_VIDEO_UPLOAD_PIC = IPm6+"poivideotask/1/uploadpic";//poi录像-上传 //http://172.23.139.4:8003/m4/task/1/getPhone?geo=1rn7exd5uhxy public static final String GET_PHONE = IPm6 + "m4/task/1/getPhone"; //任务搜索 - -// http://172.23.139.4:8003/m4/task/1/getPhone?geo=1rn7exd5uhxy -// public static final String GET_PHONES = IPm6+"m4/task/1/getPhone";//电话区号和电话位数 - + //http://172.23.139.4:8003/m4/task/1/getPhone?geo=1rn7exd5uhxy + public static final String GET_PHONES = IPm6+"m4/task/1/getPhone";//电话区号和电话位数 /** * 面状任务 diff --git a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java index d6e9bfe..cbe0941 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java +++ b/app/src/main/java/com/navinfo/outdoor/room/ChargingPileEntity.java @@ -28,18 +28,18 @@ public class ChargingPileEntity implements Serializable { private int exist;//是否存在 0不存在1存在 private int cp_floor;//充电桩地面层 地面层是1 ,地上二层为2,向上依次加1,地下一层为-1,向下依次减1.默认为1 private int sign_exist;//设备标牌是否存在 0不存在1存在 - private int cp_availableState;//可用状态 0(可以使用(有电),默认),1(不可使用(没电)),2(维修中),3(建设中)4(规划中) - private int cp_openType;// 1.对所有车辆开放 2.对环卫车开放 3.对公交和开放 4.对出租车开放 5.对特种兵车辆开放 + private int cp_availableState;//可以状态 0(可以使用(有电),默认),1(不可使用(没电)),2(维修中),3(建设中)4(规划中) + private String cp_openType;// 1.对所有车辆开放 2.对环卫车开放 3.对公交和开放 4.对出租车开放 5.对特种兵车辆开放 private String memo;//备注 默认为空 @TypeConverters(StringTypeConverter.class) private List photos;//照片组 private long fid;//对应充电站id - public int getCp_openType() { + public String getCp_openType() { return cp_openType; } - public void setCp_openType(int cp_openType) { + public void setCp_openType(String cp_openType) { this.cp_openType = cp_openType; } 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 7fec327..1f5226f 100644 --- a/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java +++ b/app/src/main/java/com/navinfo/outdoor/room/PoiEntity.java @@ -34,7 +34,7 @@ public class PoiEntity implements Serializable { //ROOM不支持直接存储集合 @TypeConverters(PhotoInfoConverter.class) private List photoInfo;//照片信息 - private int existence;//是否存在 + private int existence;//是否存在 不存在对应 0 存在对应 1 private String x;//经度 private String y;//纬度 private String detail;//深度信息 diff --git a/app/src/main/java/com/navinfo/outdoor/ui/view/ContactView.java b/app/src/main/java/com/navinfo/outdoor/ui/view/ContactView.java new file mode 100644 index 0000000..0ee9256 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/ui/view/ContactView.java @@ -0,0 +1,245 @@ +package com.navinfo.outdoor.ui.view; + +import android.content.Context; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.api.Constant; +import com.navinfo.outdoor.bean.PhoneBean; + +import java.util.ArrayList; +import java.util.List; + +/** + *手机号数据存储 + */ +public class ContactView { + private Context context; + private ViewGroup rootView; + private List poiBeanList; + + public ContactView(Context context, ViewGroup roatView, List poiBeans) { + this.context = context; + this.rootView = roatView; + this.poiBeanList = poiBeans; + } + + public void resetView() { + if (poiBeanList != null && !poiBeanList.isEmpty()) { + if (rootView != null) { + rootView.removeAllViews(); + } + for (int i = 0; i < poiBeanList.size(); i++) { + PhoneBean poiBean = poiBeanList.get(i); + View itemView = LayoutInflater.from(context).inflate(R.layout.item_poi, null, false); + MyViewHolder holder = new MyViewHolder(itemView); + if (poiBean.getPhone().startsWith("1")) { + holder.llPoi.setVisibility(View.GONE); + } else { + holder.llPoi.setVisibility(View.VISIBLE); + } + holder.editAreaCode.setText(poiBean.getArea()); + holder.tvPhone.setText(poiBean.getName()); + holder.image.setImageResource(poiBean.getImage()); + int finalI = i; + holder.image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (finalI == 0) { + View view = addRootView(); + rootView.addView(view); + } else { + ViewParent parent = v.getParent(); + rootView.removeView((View) parent); + } +// rootView.removeViewAt(i); + } + }); + holder.editPhoneNumber.setText(poiBean.getPhone()); + holder.editPhoneNumber.addTextChangedListener(new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //正在输入 + String str = holder.editPhoneNumber.getText().toString().trim(); + if (str.indexOf('1') == 0) { + holder.llPoi.setVisibility(View.GONE); + } else { + holder.llPoi.setVisibility(View.VISIBLE); + } + + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + //输入之前 + } + @Override + public void afterTextChanged(Editable s) { + } + }); + rootView.addView(itemView); + } + } + } + + /** + * 添加数据 + * @return + */ + public View addRootView() { + PhoneBean poiBean=null; + if (Constant.CODE==null||Constant.CODE.equals("")){ + poiBean = new PhoneBean("", "", "", R.drawable.icon_del_bg); + }else { + poiBean= new PhoneBean("", "", Constant.CODE, R.drawable.icon_del_bg); + } + View itemView = LayoutInflater.from(context).inflate(R.layout.item_poi, null, false); + MyViewHolder holder = new MyViewHolder(itemView); + holder.editAreaCode.setText(poiBean.getArea()); + holder.tvPhone.setText(poiBean.getName()); + holder.image.setImageResource(poiBean.getImage()); + holder.image.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ViewParent parent = v.getParent(); + rootView.removeView((View) parent); +// rootView.removeViewAt(i); + } + }); + holder.editPhoneNumber.setText(poiBean.getPhone()); + holder.editPhoneNumber.addTextChangedListener(new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + //正在输入 + String str = holder.editPhoneNumber.getText().toString().trim(); + if (str.indexOf('1') == 0) { + holder.llPoi.setVisibility(View.GONE); + } else { + holder.llPoi.setVisibility(View.VISIBLE); + } + + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + //输入之前 + } + + @Override + public void afterTextChanged(Editable s) { + } + }); + return itemView; + } + + /** + * 获取数据 + * + * @return + */ + public List getPoiBeanListByRootView() { + ArrayList poiBeans = new ArrayList<>(); + if (rootView != null) { + for (int i = 0; i < rootView.getChildCount(); i++) { + View itemView = rootView.getChildAt(i); + EditText editAreaCode = itemView.findViewById(R.id.edit_area_code); + EditText editPhoneNumber = itemView.findViewById(R.id.edit_phone_number); + poiBeans.add(new PhoneBean(null, editPhoneNumber.getText().toString().trim(), editAreaCode.getText().toString().trim(), 0)); + } + } + return poiBeans; + } + + /** + * 检验数据 + * + * @return + */ + public boolean getPhoneBean() { + List list = getPoiBeanListByRootView(); + for (int i = 0; i < list.size(); i++) { + PhoneBean poiBean = list.get(i); + if (poiBean.getPhone().indexOf('1') == 0) { + if (poiBean.getPhone().length()!=11){ + return false; + } + } else { + if (poiBean.getArea().length()+poiBean.getPhone().length()==11){ + return false; + } + } + + } + return true; + } + + /** + * 整理数据 + * + * @return + */ + public String getList() { + List list = getPoiBeanListByRootView(); + String a = ""; + for (int i = 0; i < list.size(); i++) { + PhoneBean poiBean = list.get(i); + if (list.size() == 1) { + if (poiBean.getPhone().indexOf('1') == 0) { + a = poiBean.getPhone(); + } else { + a = poiBean.getArea() + "-" + poiBean.getPhone(); + } + } else { + if (i == list.size() - 1) { + if (poiBean.getPhone().indexOf('1') == 0) { + a += poiBean.getPhone(); + } else { + a += poiBean.getArea() + "-" + poiBean.getPhone(); + } + } else { + if (poiBean.getPhone().indexOf('1') == 0) { + a += poiBean.getPhone() + "|"; + } else { + a += poiBean.getArea() + "-" + poiBean.getPhone() + "|"; + } + } + + } + + } + return a; + } + + /** + * ViewHolder的类,用于缓存控件 + */ + class MyViewHolder extends RecyclerView.ViewHolder { + TextView tvPhone; + EditText editAreaCode, editPhoneNumber; + ImageView image; + LinearLayout llPoi; + + //因为删除有可能会删除中间条目,然后会造成角标越界,所以必须整体刷新一下! + public MyViewHolder(View view) { + super(view); + tvPhone = view.findViewById(R.id.tv_phone); + editAreaCode = view.findViewById(R.id.edit_area_code); + llPoi = view.findViewById(R.id.ll_poi); + editPhoneNumber = view.findViewById(R.id.edit_phone_number); + image = view.findViewById(R.id.image); + } + } +} diff --git a/app/src/main/res/layout/charging_station_fragment.xml b/app/src/main/res/layout/charging_station_fragment.xml index bee0a85..53c47f3 100644 --- a/app/src/main/res/layout/charging_station_fragment.xml +++ b/app/src/main/res/layout/charging_station_fragment.xml @@ -169,9 +169,17 @@ + - - - - - - - - - + +