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

embedded/2024/10/19 2:19:39/

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码 


一、项目演示

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

二、项目测试环境

三、项目详情

软件已实现以下几个功能:
一、用户角色
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/embedded/124042.html

相关文章

第十四周:机器学习

目录 摘要 Abstract 一、生成式对抗网络&#xff08;下&#xff09; 1、回顾 2、生成式模型 3、generative评价指标 4、conditional generation 5、cycle GAN 二、总结 摘要 接着上周对GAN的初步概念了解及其理论推导&#xff0c;本周回顾了GAN难以训练的问题&#…

计算机网络:计算机网络概述 —— 初识计算机网络

文章目录 计算机网络组成部分网络架构协议与标准网络设备网络类型作用实际应用案例 计算机网络 计算机网络是指将多台计算机通过通信设备和通信链路连接起来&#xff0c;以实现数据和信息的交换和共享的技术和系统。它是现代信息社会的基础设施之一&#xff0c;也是互联网的基…

LeetCode 151 Reverse Words in a String 解题思路和python代码

题目&#xff1a; Given an input string s, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space. Return a string of the words in reverse order concatenated by a sin…

顺丰Android面试题集锦及参考答案

TCP 三次握手和四次挥手是什么,挥手过程中主动方的状态是什么? TCP 三次握手是建立连接的过程: 第一次握手:客户端向服务器发送一个 SYN 报文,该报文包含客户端的初始序列号(seq=x)。此时客户端进入 SYN_SENT 状态。第二次握手:服务器收到客户端的 SYN 报文后,向客户端…

Qt 中的模型/视图架构:控件与数据模型的关系

Qt 提供了一个强大的 模型/视图架构&#xff08;Model/View Architecture&#xff09;&#xff0c;用于将数据的存储与展示分离开来。这种架构不仅能让数据与用户界面的表现独立&#xff0c;还提供了高度的灵活性和可复用性。本文将详细介绍 Qt 中控件&#xff08;视图&#xf…

k8s中pod的管理

一、资源管理 1.概述 说到k8s中的pod&#xff0c;即荚的意思&#xff0c;就不得不先提到k8s中的资源管理&#xff0c;k8s中可以用以下命令查看我们的资源&#xff1a; kubectl api-resources 比如我们现在需要使用k8s开启一个东西&#xff0c;那么k8s通过apiserver去对比etc…

C# HttpClient请求URL重定向后丢失Authorization认证头

搜查官方文档后发现&#xff1a; HttpWebRequest.AllowAutoRedirect Property (System.Net) | Microsoft Learn 微软提供的http类库HttpClient &#xff08;HttpWebRequest\WebClient已不推荐使用&#xff0c;用HttpClient代替&#xff09;有备注提醒&#xff1a;当使用自动重…

Python | 第九章 | 排序和查找

P90 集合课堂练习 2024/9/28 一、集合生成式 集合生成式就是"生成集合的公式"基本语法&#xff1a; {集合元素的表达式for 自定义变量 in 可迭代对象}实例(set_create.py)说明: { ele * 2 for ele in range(1,5)}>得到集合含有2,4,6,8这四个元素&#xff0c; 但…