网络资源模板--Android Studio 停车场管理系统

server/2024/10/19 2:17:09/

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码 


一、项目演示

网络资源模板--停车管理

二、项目测试环境

三、项目详情

软件已实现以下几个功能:
一、用户角色
1.1 浏览附近的景点(商场/医院/学校…);
1.2 查看景点(商场/学校…)附近的停车场
1.3 查看停车场还有哪些车位;
1.4 预约车位;
1.5 查看有哪些车位租赁;
1.6 发布车位租赁信息;
1.7 租赁车位;
1.8 订单查看删除,以及缴费功能;
1.9 用户个人信息管理;
1.10 用户反馈;

二、管理员角色
2.1 用户管理;
2.2 地点管理;
2.3 停车场管理;
2.4 车位管理;
2.5 租赁管理;
2.6 用户反馈信息查阅;

三、数据库实现
3.1 使用Android自带数据库sqlite;

登录页

1. **视图初始化**:
   - 从布局中获取用户界面组件,包括用户名输入框、密码输入框、保存密码复选框、管理员复选框、登录按钮和注册按钮。

2. **共享偏好设置**:
   - 获取名为 `"info"` 的共享偏好设置(`SharedPreferences`)。
   - 检查是否保存了用户信息。如果用户上次勾选了“保存”,则从共享偏好中读取并填充用户名和密码到相应的输入框,并勾选保存复选框。

3. **按钮点击事件**:
   - 为登录按钮设置点击事件处理器:
     - 当用户点击登录按钮时,调用 `handleLogin` 方法进行登录处理,传入用户名、密码、管理员复选框、共享偏好设置和保存复选框状态。
   - 为注册按钮设置点击事件处理器:
     - 当用户点击注册按钮时,启动注册活动 (`RegisterActivity`)。

整体来说,该方法负责初始化用户登录界面、恢复用户上次登录的状态,并处理登录和注册的用户交互。

java">  private void initView() {EditText mUsername = findViewById(R.id.et_username);EditText mPassword = findViewById(R.id.et_password);CheckBox mSave = findViewById(R.id.cb_isSave);CheckBox mAdmin = findViewById(R.id.cb_isAdmin);Button mLogin = findViewById(R.id.btn_login);TextView mRegister = findViewById(R.id.btn_register);SharedPreferences sp = getSharedPreferences("info", 0);if (sp.getBoolean("isChecked", false)) {String username = sp.getString("username", "");String pwd = sp.getString("password", "");mUsername.setText(username);mPassword.setText(pwd);mSave.setChecked(true);}mLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {handleLogin(mUsername, mPassword, mAdmin, sp, mSave);}});mRegister.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(LoginActivity.this, RegisterActivity.class));}});}

注册页面

1. **获取输入**:
   - 从三个输入框中获取用户名和密码(及确认密码),并去除前后空格。

2. **输入验证**:
   - 检查用户名、密码和确认密码是否为空:
     - 如果全部为空,显示提示消息“请检查输入信息”。
   - 检查密码和确认密码是否一致:
     - 如果一致,继续进行注册。
     - 如果不一致,显示提示消息“两次输入密码不一致”。

3. **账户唯一性检查**:
   - 使用数据库助手检查数据库中是否已存在相同用户名的账户:
     - 如果不存在,则插入新用户记录(创建 `UserBean` 对象并保存)。
     - 显示注册成功的消息,并结束当前活动(`finish()`)。
     - 如果已存在,则显示提示消息“账户已被注册”。

整体来说,该方法负责处理用户注册的逻辑,包括输入验证、数据库检查和成功提示,确保注册过程的正确性和用户体验。

java">  public void handleRegister(EditText mUsername, EditText mPassword, EditText mPassword2, View v) {String username = mUsername.getText().toString().trim();String password = mPassword.getText().toString().trim();String password2 = mPassword2.getText().toString().trim();if (username.isEmpty() && password.isEmpty() && password2.isEmpty()) {ToastUtil.show(this, "请检查输入信息");} else if (password.equals(password2)) {if (!DatabaseUtils.getHelper().isExistsBySQL(UserBean.class, "username=?", new String[]{username}).booleanValue()) {DatabaseUtils.getHelper().insert(new UserBean(username, password, "consumer", 100.0d));ToastUtil.show(this, "注册成功");finish();} else {ToastUtil.show(this, "账户已被注册");}} else {ToastUtil.show(this, "两次输入密码不一致");}}

用户首页

### 1. `setupBanner(View view)`
- **初始化横幅**:
  - 从布局中获取横幅组件(`Banner`)。
  - 创建一个整数列表,并添加两张横幅图片资源。
  - 设置横幅的图片资源。

- **圆角设置**:
  - 使用 `ViewOutlineProvider` 为横幅设置圆角矩形的外观,圆角半径为20。

- **图片加载**:
  - 设置自定义的图片加载器,使用 Glide 加载横幅图片到指定的 `ImageView` 中。

- **启动横幅**:
  - 启动横幅显示,开始轮播。

### 2. `setupWeather(View view)`
- **获取和显示天气信息**:
  - 初始化 `WeatherBean` 对象,通过当前星期几获取天气数据。
  - 将天气情况、天气温度和限行信息显示在相应的 `TextView` 中。

### 3. `setupCardViewClickListeners(View view)`
- **设置卡片视图的点击事件**:
  - 定义卡片视图的 ID 数组和相应的类型及容器代码。
  - 遍历每个卡片视图 ID,设置点击监听器:
    - 如果容器代码不为 -1,调用 `ContainerActivity.go` 方法,传递相应的代码。
    - 如果为 -1,则调用 `openOtherActivity` 方法,打开对应类型的其他活动。

整体来说,这些方法负责初始化和配置主页的各个部分,提供用户友好的界面和交互体验。

java">  private void setupBanner(View view) {Banner banner = view.findViewById(R.id.home_banner);List<Integer> images = new ArrayList<>();images.add(R.drawable.banner1);images.add(R.drawable.banner2);banner.setImages(images);banner.setOutlineProvider(new ViewOutlineProvider() {@Overridepublic void getOutline(View view, Outline outline) {outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 20);}});banner.setClipToOutline(true);banner.setImageLoader(new ImageLoader() {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(context).load((Integer) path).into(imageView);}});banner.start();}private void setupWeather(View view) {WeatherBean weatherBean = WeatherBean.initWeather(DateUtils.getWeekDay());((TextView) view.findViewById(R.id.home_weather)).setText(weatherBean.getWeather());((TextView) view.findViewById(R.id.home_weather_number)).setText(weatherBean.getWeatherNumber());((TextView) view.findViewById(R.id.home_limit_number)).setText(weatherBean.getLimitLine());}private void setupCardViewClickListeners(View view) {int[] cardViewIds = {R.id.home_attractions, R.id.home_shop, R.id.home_Hospital,R.id.home_school, R.id.home_train, R.id.home_hotel,R.id.home_subway, R.id.home_other};String[] types = {"", "商场", "医院", "学校", "火车站", "酒店", "", ""};int[] containerCodes = {1, -1, -1, -1, -1, -1, 4, 3};for (int i = 0; i < cardViewIds.length; i++) {int id = cardViewIds[i];String type = types[i];int code = containerCodes[i];view.findViewById(id).setOnClickListener(v -> {if (code != -1) {ContainerActivity.go(getContext(), "", code);} else {openOtherActivity(type);}});}}

四、完整的项目源码 

👇👇👇👇👇快捷获取方式👇👇👇👇👇


http://www.ppmy.cn/server/128192.html

相关文章

讯飞星火编排创建智能体学习(六):使用轻量级Action查询家里的灯开了没有

目录 引言 轻量级Action 巴法云的API API定义 设置轻量级Action属性 大模型节点设置 测试 引言 不知不觉这个系列已经写到了第6篇了。今天介绍一下轻量级Action的使用&#xff0c;并且展示一个好玩的内容&#xff0c;就是如何在星火大模型中查询家里的灯到底开了没有。 …

【EXCEL数据处理】000017 案例 Match和Index函数。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000016 案例 Match和Index函数。使用的软件&#xff…

Springboot3 + MyBatis-Plus + MySql + Vue + ProTable + TS 实现后台管理商品分类(最新教程附源码)

Springboot3 MyBatis-Plus MySql Uniapp 商品加入购物车功能实现&#xff08;针对上一篇sku&#xff09; 1、效果展示2、数据库设计3、后端源码3.1 application.yml 方便 AliOssUtil.java 读取3.2 model 层3.2.1 BaseEntity3.2.1 GoodsType3.2.3 GoodsTypeSonVo3.3 Controll…

java目录总结

java----Random-CSDN博客 java----数组-CSDN博客 java数组_int rnumber r.next(1, 7);-CSDN博客 java---函数方法-CSDN博客 java----ArrayList-CSDN博客 java---日期-CSDN博客 java---Set,Date-CSDN博客 java---Collections-CSDN博客 java-----Map-CSDN博客 java----…

JavaScript 获取浏览器本地数据的4种方式

JavaScript 获取浏览器本地数据的方式 我们在做Web开发中&#xff0c;客户端存储机制对于在浏览器中持久化数据至关重要。这些机制允许开发者存储用户偏好设置、应用状态以及其他关键信息&#xff0c;从而增强用户体验。本文将介绍几种常用的JavaScript获取浏览器本地数据的方…

fiddler抓包18-2_导出jmeter、postman脚本(带请求头)

课程大纲 1. Fiddler导出请求为curl脚本 选中请求&#xff0c;“文件” - “导出会话” - “选中的会话” - “cURL Script”。 2. 导入jmeter ① 复制curl脚本。 ② 打开jmeter&#xff0c;“工具” - “import from cURL”&#xff0c;粘贴脚本&#xff0c;勾选“Add cooki…

ctf.bugku-备份是个好习惯

访问页面得到字符串 这串字符串是重复的&#xff1b; d41d8cd98f00b204e9800998ecf8427e 从前端、源码上看&#xff0c;除了这段字符串&#xff0c;没有其他信息&#xff1b;尝试解密&#xff0c;长度32位&#xff1b;各种解密方式试试&#xff1b; MD5免费在线解密破解_MD5在…

GitLab CI/CD脚本入门

工作中第一次用到gitlab自带的cicd&#xff0c; 记录一下备忘 GitLab CI/CD 配置文件 (.gitlab-ci.yml) 中有许多关键字&#xff0c;用于定义不同的行为和阶段。以下是一些常见且重要的关键字&#xff1a; 全局和 job 特定关键字 image 指定运行 CI job 时的 Docker 镜像。 im…