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

基础搭建

功能开发
1:我的停车
parent 1d174b99
......@@ -42,6 +42,14 @@
</activity>
<!-- 我的停车-->
<activity
android:name=".ui.park.MyParkActivity"
android:exported="true"/>
<!-- 新增停车-->
<activity
android:name=".ui.park.MyParkAddActivity"
android:exported="true"/>
<!-- 商品分类-->
<activity
android:name=".ui.pdf.PDFWebViewActivity"
......
......@@ -193,6 +193,13 @@ interface ApiService {
@Query("affiliatedCompany") affiliatedCompany: String
): Observable<BaseResponse<List<BoothBean>>>
/**
* 获取车辆列表
*/
@Headers("Content-type:application/json")
@GET("app/carInfo/list")
open fun getParkList(): Observable<BaseResponse<BoothBean>>
/**
* 上传
*/
......
package com.xx.hbhconsumer.data.http.requst;
import com.xx.hbhconsumer.data.http.BaseRespons;
import com.xx.hbhconsumer.data.http.respons.BoothBean;
import com.xx.hbhconsumer.data.http.respons.CollectionBean;
import java.util.List;
import io.reactivex.rxjava3.core.Observable;
import me.goldze.mvvmhabit.http.ApiParams;
import me.goldze.mvvmhabit.http.BasePageResponse;
import me.goldze.mvvmhabit.http.BaseResponse;
public class ParkRequest extends BaseRespons {
/**
* 车辆信息列表
*/
public Observable<BaseResponse<BoothBean>> getParkList() {
return getApiService().getParkList();
}
}
......@@ -26,6 +26,7 @@ import com.xx.hbhconsumer.ui.messagecenter.MessageCenterActivity;
import com.xx.hbhconsumer.ui.mycollection.MyCollectionActivity;
import com.xx.hbhconsumer.ui.mycoupon.MyCouponActivity;
import com.xx.hbhconsumer.ui.order.OrderActivity;
import com.xx.hbhconsumer.ui.park.MyParkActivity;
import com.xx.hbhconsumer.ui.settings.SettingsActivity;
import java.io.File;
......@@ -427,6 +428,14 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
startActivity(MessageCenterActivity.class);
}
});
//跳转我的停车
public BindingCommand goMyPark = new BindingCommand(new BindingAction() {
@Override
public void call() {
startActivity(MyParkActivity.class);
}
});
//跳转我的收藏
......
package com.xx.hbhconsumer.ui.park;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.xx.hbhconsumer.BR;
import com.xx.hbhconsumer.R;
import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import com.xx.hbhconsumer.databinding.ActivityMessageCenterBinding;
import me.goldze.mvvmhabit.base.BaseActivity;
import me.goldze.mvvmhabit.binding.command.BindingAction;
import me.goldze.mvvmhabit.binding.command.BindingCommand;
public class MyParkActivity extends BaseActivity<ActivityMessageCenterBinding, MyParkViewModel> {
@Override
public int initContentView(Bundle savedInstanceState) {
return R.layout.activity_my_park_center;
}
@Override
public void initData() {
super.initData();
}
@Override
public int initVariableId() {
return BR.myParkViewModel;
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
super.onPointerCaptureChanged(hasCapture);
}
public void goBack(View view) {
finish();
}
@Override
public MyParkViewModel initViewModel() {
ParkRequest parkRequest = new ParkRequest();
return new MyParkViewModel(getApplication(), parkRequest);
}
}
package com.xx.hbhconsumer.ui.park;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener;
import com.xx.hbhconsumer.BR;
import com.xx.hbhconsumer.R;
import com.xx.hbhconsumer.data.http.requst.LoginRequest;
import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import com.xx.hbhconsumer.databinding.ActivityMyParkAddBinding;
import me.goldze.mvvmhabit.base.BaseActivity;
import me.goldze.mvvmhabit.utils.ToastUtils;
public class MyParkAddActivity extends BaseActivity<ActivityMyParkAddBinding, MyParkAddViewModel> {
final String[] tabs = new String[]{"普通车牌号", "新能源车牌号"};
TabLayout tabLayout;
@Override
public int initContentView(Bundle savedInstanceState) {
return R.layout.activity_my_park_add;
}
@Override
public void initData() {
super.initData();
// 初始化 TabLayout
tabLayout = findViewById(R.id.tabLayout);
// 添加 Tab
for (String tab : tabs) {
tabLayout.addTab(tabLayout.newTab().setText(tab));
}
// 设置 Tab 选中监听器
tabLayout.addOnTabSelectedListener(new OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 当 Tab 被选中时,通过 Toast 回显
Toast.makeText(MyParkAddActivity.this, "选中了:" + tab.getText(), Toast.LENGTH_SHORT).show();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
// 当 Tab 未被选中时,不做处理
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
// 当 Tab 被重新选中时,不做处理
}
});
}
@Override
public int initVariableId() {
return BR.myParkAddViewModel;
}
@Override
public MyParkAddViewModel initViewModel() {
ParkRequest parkRequest = new ParkRequest();
return new MyParkAddViewModel(getApplication(), parkRequest);
}
}
\ No newline at end of file
package com.xx.hbhconsumer.ui.park;
import android.app.Application;
import androidx.annotation.NonNull;
import com.xx.hbhconsumer.data.http.requst.LoginRequest;
import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import me.goldze.mvvmhabit.base.BaseViewModel;
public class MyParkAddViewModel extends BaseViewModel<ParkRequest> {
public MyParkAddViewModel(@NonNull Application application, ParkRequest model) {
super(application, model);
}
}
package com.xx.hbhconsumer.ui.park;
import android.app.Application;
import android.util.Log;
import androidx.annotation.NonNull;
import com.xx.hbhconsumer.data.http.requst.LoginRequest;
import com.xx.hbhconsumer.data.http.requst.ParkRequest;
import com.xx.hbhconsumer.data.http.respons.CollectionBean;
import com.xx.hbhconsumer.ui.login.LoginActivity;
import com.xx.hbhconsumer.ui.mycollection.MyCollectionViewModel;
import java.util.List;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import me.goldze.mvvmhabit.base.BaseViewModel;
import me.goldze.mvvmhabit.binding.command.BindingAction;
import me.goldze.mvvmhabit.binding.command.BindingCommand;
import me.goldze.mvvmhabit.http.ApiDisposablePageObserver;
import me.goldze.mvvmhabit.utils.RxUtils;
public class MyParkViewModel extends BaseViewModel<ParkRequest> {
public MyParkViewModel(@NonNull Application application, ParkRequest model) {
super(application, model);
}
@Override
public void onCreate() {
super.onCreate();
loadData();
}
private void loadData() {
model.getParkList()
.compose(RxUtils.schedulersTransformer()) //线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.doOnSubscribe(MyParkViewModel.this)
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
}).subscribe(new ApiDisposablePageObserver<CollectionBean>() {
@Override
public void onSuccess(List<CollectionBean> collectionBeanList) {
// collectionList.postValue(collectionBeanList);
Log.v("查询的车辆列表", collectionBeanList.toString());
}
@Override
public void onError(String Error) {
dismissDialog();
}
@Override
public void getTotal(int total) {
}
});
}
//返回按钮
public BindingCommand goBack = new BindingCommand(new BindingAction() {
@Override
public void call() {
finish();
}
});
//跳转新增停车页面
public BindingCommand goAddPark = new BindingCommand(new BindingAction() {
@Override
public void call() {
Log.v("跳转新增停车页面", "");
startActivity(MyParkAddActivity.class);
}
});
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="myParkAddViewModel"
type="com.xx.hbhconsumer.ui.park.MyParkAddViewModel" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<com.xx.xxviewlibrary.witget.XxBar
android:id="@+id/bar"
bar_title="@{@string/add_park}"
on_click="@{myParkAddViewModel.clickFinish}"
android:layout_width="match_parent"
android:layout_height="55dp"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/bar"
android:background="@color/white"
android:paddingBottom="7dp"
app:tabBackground="@null"
app:tabGravity="fill"
app:tabIndicatorColor="#5971A4"
app:tabIndicatorFullWidth="false"
app:tabIndicatorHeight="2dp"
app:tabMaxWidth="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="4dp"
app:tabRippleColor="@null"
app:tabSelectedTextColor="#5971A4"
app:tabTextColor="@color/black">
</com.google.android.material.tabs.TabLayout>
<!--输入车牌号-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/tabLayout">
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:binding="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="myParkViewModel"
type="com.xx.hbhconsumer.ui.park.MyParkViewModel" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bar"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@color/white">
<ImageButton
android:id="@+id/iv_bar_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="#00ffffff"
android:onClick="goBack"
android:padding="8dp"
android:src="@mipmap/ruzhu_icon_fanhui"
binding:onClickCommand="@{myParkViewModel.goBack}" />
<TextView
android:id="@+id/bar_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:text="@{@string/my_park}"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold" />
<ImageButton
android:id="@+id/iv_bar_right"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="17dp"
android:src="@mipmap/park_add_icon"
android:visibility="visible"
binding:onClickCommand="@{myParkViewModel.goAddPark}" />
</RelativeLayout>
<!--停车列表展示,没有数据就显示暂无数据按钮-->
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/bar">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/park_zanwu_icon"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</layout>
\ No newline at end of file
......@@ -50,6 +50,15 @@
android:layout_toLeftOf="@id/iv_setting"
android:src="@mipmap/wode_icon_xiaoxi1"/>
<ImageView
android:id="@+id/iv_park"
onClickCommand="@{mineViewModel.goMyPark}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:layout_toLeftOf="@id/iv_message"
android:src="@mipmap/park_start_icon"/>
</RelativeLayout>
<!--今日卡片-->
......
......@@ -110,6 +110,8 @@
<string name="my_credit">我的积分</string>
<string name="my_coupon">我的优惠券</string>
<string name="message_center">消息中心</string>
<string name="my_park">我的停车</string>
<string name="add_park">添加车牌号</string>
<!--2-->
<string name="change_password">修改密码</string>
<!--更换手机号-->
......
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