Commit b170c1a7 authored by 小费同学阿's avatar 小费同学阿 💬

基础搭建

功能开发
1:我的停车
parent 34249642
...@@ -77,6 +77,15 @@ interface ApiService { ...@@ -77,6 +77,15 @@ interface ApiService {
@GET("carInfo/list") @GET("carInfo/list")
open fun getParkList(): Observable<BaseResponse<List<ParkBean>>> open fun getParkList(): Observable<BaseResponse<List<ParkBean>>>
/**
* 删除车辆信息
*/
@Headers("Content-type:application/json")
@DELETE("carInfo/deleteLogical/{businessId}")
open fun deletePark(
@Path("businessId") id: String
): Observable<BaseResponse<Boolean>>
/** /**
* 提交停车信息 * 提交停车信息
*/ */
......
...@@ -22,4 +22,11 @@ class ParkRequest: BaseRespons() { ...@@ -22,4 +22,11 @@ class ParkRequest: BaseRespons() {
{ {
return apiService.postParkMsg(ApiParams<ParkMsgbody>().setParams(ParkMsgbody(plateNumber,type.toInt()))) return apiService.postParkMsg(ApiParams<ParkMsgbody>().setParams(ParkMsgbody(plateNumber,type.toInt())))
} }
/**
* 删除停车信息
*/
fun deletePark(businessId: String): Observable<BaseResponse<Boolean>> {
return apiService.deletePark(businessId);
}
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.xx.hbhconsumer.dialog.adapter; ...@@ -3,6 +3,7 @@ package com.xx.hbhconsumer.dialog.adapter;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Toast;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.xx.hbhconsumer.R; import com.xx.hbhconsumer.R;
...@@ -18,7 +19,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park ...@@ -18,7 +19,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park
super(context); super(context);
} }
/*加载积分布局*/ // 定义长按事件的回调接口
public interface OnItemLongClickListener {
void onItemLongClick(View view, int position, ParkBean parkBean);
}
// 定义一个成员变量,用于存储回调接口的实例
private OnItemLongClickListener onItemLongClickListener;
// 提供一个方法,用于设置回调接口的实例
public void setOnItemLongClickListener(OnItemLongClickListener listener) {
this.onItemLongClickListener = listener;
}
@Override @Override
public int initLayout() { public int initLayout() {
return R.layout.item_park; return R.layout.item_park;
...@@ -31,6 +44,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park ...@@ -31,6 +44,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park
dataBind.setParkBean(data); dataBind.setParkBean(data);
Gson gson = new Gson(); Gson gson = new Gson();
dataBind.itemLayout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (onItemLongClickListener != null) {
// 如果有设置回调接口,则调用回调方法
onItemLongClickListener.onItemLongClick(v, position, data);
}
// 处理长按事件
// Toast.makeText(v.getContext(), "长按事件触发,位置:" + position + ",车牌号:" + data.getPlateNumber(), Toast.LENGTH_SHORT).show();
// 返回 true 表示已处理长按事件
return true;
}
});
String type = data.getType(); // 先获取类型 String type = data.getType(); // 先获取类型
if (type != null && !type.isEmpty()) { if (type != null && !type.isEmpty()) {
// 先检查是否为 null,再检查是否为空字符串 // 先检查是否为 null,再检查是否为空字符串
......
package com.xx.hbhconsumer.ui.park; package com.xx.hbhconsumer.ui.park;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
...@@ -15,6 +19,9 @@ import com.xx.hbhconsumer.data.http.requst.ParkRequest; ...@@ -15,6 +19,9 @@ import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import com.xx.hbhconsumer.data.http.respons.ParkBean; import com.xx.hbhconsumer.data.http.respons.ParkBean;
import com.xx.hbhconsumer.databinding.ActivityMessageCenterBinding; import com.xx.hbhconsumer.databinding.ActivityMessageCenterBinding;
import com.xx.hbhconsumer.dialog.adapter.ParkAdapter; import com.xx.hbhconsumer.dialog.adapter.ParkAdapter;
import com.xx.hbhconsumer.ui.login.LoginActivity;
import com.xx.xxviewlibrary.comm.CommTextDialog;
import com.xx.xxviewlibrary.comm.RefuseDialogBean;
import java.util.List; import java.util.List;
...@@ -24,6 +31,8 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M ...@@ -24,6 +31,8 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
private MyParkViewModel myParkViewModel; private MyParkViewModel myParkViewModel;
private RecyclerView recyclerView; private RecyclerView recyclerView;
private ImageView zanwu_icon; private ImageView zanwu_icon;
private TextView zanwu_zi;
private String deFlag = "0";
/*适配器*/ /*适配器*/
ParkAdapter parkAdapter; ParkAdapter parkAdapter;
...@@ -35,15 +44,20 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M ...@@ -35,15 +44,20 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
// 调用刷新数据的方法 Log.v("deFlags是啥", deFlag);
myParkViewModel.refreshData(); if (deFlag.equals("1")) {
// 调用刷新数据的方法
myParkViewModel.refreshData();
}
} }
@Override @Override
public void initData() { public void initData() {
super.initData(); super.initData();
// 初始化 RecyclerView // 初始化 RecyclerView
recyclerView = findViewById(R.id.recycler_view); recyclerView = findViewById(R.id.recycler_view);
zanwu_icon = findViewById(R.id.zanwu_icon); zanwu_icon = findViewById(R.id.zanwu_icon);
zanwu_zi = findViewById(R.id.zanwu_zi);
recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 在 Activity/Fragment 中 // 在 Activity/Fragment 中
...@@ -54,17 +68,37 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M ...@@ -54,17 +68,37 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
@Override @Override
public void onChanged(List<ParkBean> parkBeans) { public void onChanged(List<ParkBean> parkBeans) {
if (parkBeans.size() > 0) { if (parkBeans.size() > 0) {
deFlag = "1";
Log.v("333333333333333", String.valueOf(parkBeans.size()));
// viewModel.parkAdapter.mList.addAll(parkBeans);
recyclerView.setAdapter(viewModel.parkAdapter); recyclerView.setAdapter(viewModel.parkAdapter);
zanwu_icon.setVisibility(View.GONE); zanwu_icon.setVisibility(View.GONE);
zanwu_zi.setVisibility(View.GONE);
} else { } else {
zanwu_icon.setVisibility(View.VISIBLE); zanwu_icon.setVisibility(View.VISIBLE);
zanwu_zi.setVisibility(View.VISIBLE);
} }
} }
}); });
// 设置长按事件的回调接口
viewModel.parkAdapter.setOnItemLongClickListener(new ParkAdapter.OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position, ParkBean parkBean) {
// 去调删除接口
showCommTextDialog(new RefuseDialogBean("是否删除"+parkBean.getPlateNumber()+"该车牌号?", "确定", "取消"), new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
viewModel.deletePark(parkBean.getBusinessId());
}
@Override
public void refuseBack() {
}
});
}
});
} }
@Override @Override
...@@ -82,4 +116,11 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M ...@@ -82,4 +116,11 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
public void goBack(View view) { public void goBack(View view) {
finish(); finish();
} }
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
super.onPointerCaptureChanged(hasCapture);
}
} }
\ No newline at end of file
...@@ -38,12 +38,13 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -38,12 +38,13 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
// 使用Pattern和Matcher进行校验 // 使用Pattern和Matcher进行校验
return licensePlate.matches(regex); return licensePlate.matches(regex);
} }
// 添加一个方法来接收拼接后的字符串 // 添加一个方法来接收拼接后的字符串
public void saveCombinedString(String combinedString,String type) { public void saveCombinedString(String combinedString, String type) {
if (combinedString!=null){ if (combinedString != null) {
// 判断是否是新能源车牌号(假设新能源车牌以"D"或"F"结尾) // 判断是否是新能源车牌号(假设新能源车牌以"D"或"F"结尾)
String processedString = combinedString; String processedString = combinedString;
if (type.equals("1")&&!combinedString.isEmpty()&&combinedString.length()==7) { if (type.equals("1") && !combinedString.isEmpty() && combinedString.length() == 7) {
// 如果是普通车牌号,去掉最后一位 // 如果是普通车牌号,去掉最后一位
processedString = combinedString.substring(0, combinedString.length() - 1); processedString = combinedString.substring(0, combinedString.length() - 1);
// 打印提示信息 // 打印提示信息
...@@ -53,7 +54,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -53,7 +54,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
// 如果不是合格的车牌号,提示用户 // 如果不是合格的车牌号,提示用户
Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show();
return; // 退出方法,不继续执行后续逻辑 return; // 退出方法,不继续执行后续逻辑
}else { } else {
showDialog();
model.postParkMsg(combinedString, type) model.postParkMsg(combinedString, type)
.compose(RxUtils.schedulersTransformer()) //线程调度 .compose(RxUtils.schedulersTransformer()) //线程调度
...@@ -65,8 +67,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -65,8 +67,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}).subscribe(new ApiDisposableObserver<Boolean>() { }).subscribe(new ApiDisposableObserver<Boolean>() {
@Override @Override
public void onSuccess(Boolean resultBean) { public void onSuccess(Boolean resultBean) {
dismissDialog();
// 在这里处理拼接后的字符串 // 在这里处理拼接后的字符串
Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show();
finish();
} }
@Override @Override
...@@ -76,7 +80,7 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -76,7 +80,7 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}); });
} }
}else if (type.equals("2")&&!combinedString.isEmpty()&&combinedString.length()==8){ } else if (type.equals("2") && !combinedString.isEmpty() && combinedString.length() == 8) {
// 打印提示信息 // 打印提示信息
// Toast.makeText(getApplication().getApplicationContext(), "新能源车牌号处理后:" + processedString, Toast.LENGTH_SHORT).show(); // Toast.makeText(getApplication().getApplicationContext(), "新能源车牌号处理后:" + processedString, Toast.LENGTH_SHORT).show();
// 校验combinedString是否是合格的车牌号 // 校验combinedString是否是合格的车牌号
...@@ -84,8 +88,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -84,8 +88,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
// 如果不是合格的车牌号,提示用户 // 如果不是合格的车牌号,提示用户
Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show();
return; // 退出方法,不继续执行后续逻辑 return; // 退出方法,不继续执行后续逻辑
}else { } else {
showDialog();
model.postParkMsg(combinedString, type) model.postParkMsg(combinedString, type)
.compose(RxUtils.schedulersTransformer()) //线程调度 .compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(MyParkAddViewModel.this) .doOnSubscribe(MyParkAddViewModel.this)
...@@ -96,8 +100,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -96,8 +100,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}).subscribe(new ApiDisposableObserver<Boolean>() { }).subscribe(new ApiDisposableObserver<Boolean>() {
@Override @Override
public void onSuccess(Boolean resultBean) { public void onSuccess(Boolean resultBean) {
dismissDialog();
// 在这里处理拼接后的字符串 // 在这里处理拼接后的字符串
Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show();
finish();
} }
@Override @Override
...@@ -107,7 +113,7 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> { ...@@ -107,7 +113,7 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}); });
} }
}else { } else {
// 打印提示信息 // 打印提示信息
Toast.makeText(getApplication().getApplicationContext(), "请输入完整车牌号", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication().getApplicationContext(), "请输入完整车牌号", Toast.LENGTH_SHORT).show();
......
...@@ -3,6 +3,7 @@ package com.xx.hbhconsumer.ui.park; ...@@ -3,6 +3,7 @@ package com.xx.hbhconsumer.ui.park;
import android.app.Application; import android.app.Application;
import android.util.Log; import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
...@@ -25,6 +26,8 @@ import me.goldze.mvvmhabit.binding.command.BindingCommand; ...@@ -25,6 +26,8 @@ import me.goldze.mvvmhabit.binding.command.BindingCommand;
import me.goldze.mvvmhabit.http.ApiDisposableObserver; import me.goldze.mvvmhabit.http.ApiDisposableObserver;
import me.goldze.mvvmhabit.http.ApiDisposablePageObserver; import me.goldze.mvvmhabit.http.ApiDisposablePageObserver;
import me.goldze.mvvmhabit.utils.RxUtils; import me.goldze.mvvmhabit.utils.RxUtils;
import me.goldze.mvvmhabit.utils.StringUtils;
import me.goldze.mvvmhabit.utils.ToastUtils;
public class MyParkViewModel extends BaseViewModel<ParkRequest> { public class MyParkViewModel extends BaseViewModel<ParkRequest> {
/*适配器*/ /*适配器*/
...@@ -47,6 +50,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> { ...@@ -47,6 +50,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> {
loadData(); // 调用加载数据的方法 loadData(); // 调用加载数据的方法
} }
private void loadData() { private void loadData() {
showDialog();
model.getParkList() model.getParkList()
.compose(RxUtils.schedulersTransformer()) //线程调度 .compose(RxUtils.schedulersTransformer()) //线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle // .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
...@@ -59,6 +63,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> { ...@@ -59,6 +63,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> {
@Override @Override
public void onSuccess(List<ParkBean> resultBean) { public void onSuccess(List<ParkBean> resultBean) {
dismissDialog();
parkAdapter.mList = resultBean; parkAdapter.mList = resultBean;
parkBeanList.setValue(resultBean); parkBeanList.setValue(resultBean);
} }
...@@ -71,7 +76,29 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> { ...@@ -71,7 +76,29 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> {
}); });
} }
public void deletePark(String businessId) {
showDialog();
model.deletePark(businessId)
.compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(MyParkViewModel.this)
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
}).subscribe(new ApiDisposableObserver<Boolean>() {
@Override
public void onSuccess(Boolean resultBean) {
ToastUtils.showShort("删除成功");
dismissDialog();
refreshData();
}
@Override
public void onError(String Error) {
dismissDialog();
}
});
}
//返回按钮 //返回按钮
public BindingCommand goBack = new BindingCommand(new BindingAction() { public BindingCommand goBack = new BindingCommand(new BindingAction() {
@Override @Override
......
...@@ -81,6 +81,18 @@ ...@@ -81,6 +81,18 @@
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/zanwu_zi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暂无车辆数据"
android:layout_marginTop="3dp"
android:textColor="#D1CECE"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@+id/zanwu_icon"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<RelativeLayout <RelativeLayout
android:id="@+id/item_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
...@@ -107,9 +108,10 @@ ...@@ -107,9 +108,10 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="" android:text=""
android:textColor="#fdc362" android:textColor="#fdc362"
android:textSize="10sp" android:textSize="16sp"
android:layout_marginLeft="2dp"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment