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

基础搭建

功能开发
1:我的停车
parent 34249642
......@@ -77,6 +77,15 @@ interface ApiService {
@GET("carInfo/list")
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() {
{
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;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.google.gson.Gson;
import com.xx.hbhconsumer.R;
......@@ -18,7 +19,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park
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
public int initLayout() {
return R.layout.item_park;
......@@ -31,6 +44,19 @@ public class ParkAdapter extends xxBaseRecyclerViewAdapter<ItemParkBinding, Park
dataBind.setParkBean(data);
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(); // 先获取类型
if (type != null && !type.isEmpty()) {
// 先检查是否为 null,再检查是否为空字符串
......
package com.xx.hbhconsumer.ui.park;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.LinearLayoutManager;
......@@ -15,6 +19,9 @@ import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import com.xx.hbhconsumer.data.http.respons.ParkBean;
import com.xx.hbhconsumer.databinding.ActivityMessageCenterBinding;
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;
......@@ -24,6 +31,8 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
private MyParkViewModel myParkViewModel;
private RecyclerView recyclerView;
private ImageView zanwu_icon;
private TextView zanwu_zi;
private String deFlag = "0";
/*适配器*/
ParkAdapter parkAdapter;
......@@ -35,15 +44,20 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
@Override
protected void onResume() {
super.onResume();
// 调用刷新数据的方法
myParkViewModel.refreshData();
Log.v("deFlags是啥", deFlag);
if (deFlag.equals("1")) {
// 调用刷新数据的方法
myParkViewModel.refreshData();
}
}
@Override
public void initData() {
super.initData();
// 初始化 RecyclerView
recyclerView = findViewById(R.id.recycler_view);
zanwu_icon = findViewById(R.id.zanwu_icon);
zanwu_zi = findViewById(R.id.zanwu_zi);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 在 Activity/Fragment 中
......@@ -54,17 +68,37 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
@Override
public void onChanged(List<ParkBean> parkBeans) {
if (parkBeans.size() > 0) {
Log.v("333333333333333", String.valueOf(parkBeans.size()));
// viewModel.parkAdapter.mList.addAll(parkBeans);
deFlag = "1";
recyclerView.setAdapter(viewModel.parkAdapter);
zanwu_icon.setVisibility(View.GONE);
zanwu_zi.setVisibility(View.GONE);
} else {
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
......@@ -82,4 +116,11 @@ public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, M
public void goBack(View view) {
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> {
// 使用Pattern和Matcher进行校验
return licensePlate.matches(regex);
}
// 添加一个方法来接收拼接后的字符串
public void saveCombinedString(String combinedString,String type) {
if (combinedString!=null){
public void saveCombinedString(String combinedString, String type) {
if (combinedString != null) {
// 判断是否是新能源车牌号(假设新能源车牌以"D"或"F"结尾)
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);
// 打印提示信息
......@@ -53,7 +54,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
// 如果不是合格的车牌号,提示用户
Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show();
return; // 退出方法,不继续执行后续逻辑
}else {
} else {
showDialog();
model.postParkMsg(combinedString, type)
.compose(RxUtils.schedulersTransformer()) //线程调度
......@@ -65,8 +67,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}).subscribe(new ApiDisposableObserver<Boolean>() {
@Override
public void onSuccess(Boolean resultBean) {
dismissDialog();
// 在这里处理拼接后的字符串
Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
......@@ -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();
// 校验combinedString是否是合格的车牌号
......@@ -84,8 +88,8 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
// 如果不是合格的车牌号,提示用户
Toast.makeText(getApplication().getApplicationContext(), "车牌号格式不正确", Toast.LENGTH_SHORT).show();
return; // 退出方法,不继续执行后续逻辑
}else {
} else {
showDialog();
model.postParkMsg(combinedString, type)
.compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(MyParkAddViewModel.this)
......@@ -96,8 +100,10 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
}).subscribe(new ApiDisposableObserver<Boolean>() {
@Override
public void onSuccess(Boolean resultBean) {
dismissDialog();
// 在这里处理拼接后的字符串
Toast.makeText(getApplication().getApplicationContext(), "添加车牌号成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
......@@ -107,7 +113,7 @@ public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
});
}
}else {
} else {
// 打印提示信息
Toast.makeText(getApplication().getApplicationContext(), "请输入完整车牌号", Toast.LENGTH_SHORT).show();
......
......@@ -3,6 +3,7 @@ package com.xx.hbhconsumer.ui.park;
import android.app.Application;
import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.MutableLiveData;
......@@ -25,6 +26,8 @@ import me.goldze.mvvmhabit.binding.command.BindingCommand;
import me.goldze.mvvmhabit.http.ApiDisposableObserver;
import me.goldze.mvvmhabit.http.ApiDisposablePageObserver;
import me.goldze.mvvmhabit.utils.RxUtils;
import me.goldze.mvvmhabit.utils.StringUtils;
import me.goldze.mvvmhabit.utils.ToastUtils;
public class MyParkViewModel extends BaseViewModel<ParkRequest> {
/*适配器*/
......@@ -47,6 +50,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> {
loadData(); // 调用加载数据的方法
}
private void loadData() {
showDialog();
model.getParkList()
.compose(RxUtils.schedulersTransformer()) //线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
......@@ -59,6 +63,7 @@ public class MyParkViewModel extends BaseViewModel<ParkRequest> {
@Override
public void onSuccess(List<ParkBean> resultBean) {
dismissDialog();
parkAdapter.mList = resultBean;
parkBeanList.setValue(resultBean);
}
......@@ -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() {
@Override
......
......@@ -81,6 +81,18 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="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>
</RelativeLayout>
......
......@@ -12,6 +12,7 @@
<RelativeLayout
android:id="@+id/item_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
......@@ -107,9 +108,10 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:text=""
android:textColor="#fdc362"
android:textSize="10sp"
android:textSize="16sp"
android:layout_marginLeft="2dp"
android:textStyle="bold" />
</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