基于Android Studio 垃圾分类助手App--原创

一、高质量源码(非开源,白嫖低价勿扰)

关注公众号:《编程乐学》

后台回复:24060301

二、项目演示视频

基于Android Studio 垃圾分类助手App--原创

三、开发环境

四、设计与实现

1.启动页

1.设置延迟三秒后执行 runnable,然后跳转到登录页面。

2.初始化一个计时器 timeCount,总共执行四秒,每秒执行一次。

3.当计时器结束时,移除 runnable,即取消跳转到登录页面的操作。

图片

2.注册登录

记住密码功能:

在用户勾选“记住密码”的情况下,会将输入的用户名和密码保存到SharedPreferences中,下次打开应用时会自动填充用户名和密码,并保持勾选状态。

取消勾选时则清空保存的用户名和密码信息。

登录功能:

用户点击登录按钮后,会检查输入的用户名和密码是否为空,若为空则弹出提示。

若用户名和密码均不为空,则调用userHelper中的方法验证用户信息。

若验证通过,则会根据“记住密码”选项决定是否保存用户名和密码信息到SharedPreferences中,并跳转到主界面(MainActivity)。

若验证不通过,则弹出登录失败提示。

跳转注册页面功能:

用户点击“注册”文本时,会跳转到注册页面(RegisterActivity)。

图片

包括一个注册活动(RegisterActivity),用户可以在其中输入用户名、密码和确认密码。

如果用户名、密码或确认密码为空,应用程序会显示相应的提示消息。

如果密码与确认密码不匹配,也会有相应的提示消息。如果所有输入都有效,则会调用用户助手(UserHelper)来添加用户。

添加用户成功后,会显示注册成功消息,并将用户重定向到登录页面(LoginActivity)。

图片

3.首页

用于在主页显示视频。使用VideoView来播放视频,视频的URL是从互联网获取的。

在片段的onCreateView方法中,它获取了VideoView实例,并设置了视频的URL,然后开始播放视频。

最后,将VideoView设置为填充父布局的大小。

图片

03

答题页

简单的学习应用程序,界面包含了几个选项按钮用于回答问题。

点击按钮后会进行答案检查,显示回答是否正确,并在3秒后获取下一个问题。

同时,也可以开始答题并获取题目内容。

题目内容通过网络请求从指定的URL获取,获取到数据后会解析JSON并显示在界面上。

在整个过程中,还包括了按钮的禁用和启用功能,以及网络请求的异步处理和错误提示。

图片

4.搜索页

点击搜索按钮时根据输入的关键字发起网络请求获取数据。

getNewsData 方法中使用 OkHttpClient 发起异步网络请求,获取到响应后解析 JSON 数据,更新界面显示相关列表信息。

当网络请求失败或数据解析出错时,在 UI 线程上显示相应错误提示。整体实现了搜索关键字获取相关数据并展示的功能。

图片

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F1F1F1"
    tools:context=".Fragment.SearchFragment">

    <View
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="#00BCD4"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="分类搜索"
        android:textColor="#fff"
        android:textSize="20sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="@+id/view2"
        app:layout_constraintEnd_toEndOf="@+id/view2"
        app:layout_constraintStart_toStartOf="@+id/view2"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:id="@+id/view3"
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:background="@drawable/view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/view2" />

    <ImageView
        android:id="@+id/img_search"
        android:layout_width="20dp"
        android:layout_height="0dp"
        android:layout_marginRight="10dp"
        android:src="@drawable/searchd"
        app:layout_constraintBottom_toBottomOf="@+id/view3"
        app:layout_constraintEnd_toEndOf="@+id/view3"
        app:layout_constraintTop_toTopOf="@+id/view3" />

    <EditText
        android:id="@+id/et_search"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginLeft="10dp"
        android:background="#fff"
        android:ems="10"
        android:hint="请输入名称查询"
        android:inputType="textPersonName"
        android:textSize="14sp"
        app:layout_constraintBottom_toBottomOf="@+id/view3"
        app:layout_constraintEnd_toStartOf="@+id/img_search"
        app:layout_constraintStart_toStartOf="@+id/view3"
        app:layout_constraintTop_toTopOf="@+id/view3" />

    <ListView
        android:id="@+id/lv"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/view3" />

</androidx.constraintlayout.widget.ConstraintLayout>

5.我的页面

1.信息部分:用户点击后可查看详细信息,点击后跳转至InformationActivity。

2.修改密码部分:用户点击后可修改密码,点击后跳转至ModifyPassWordActivity。

3.版本部分:用户点击后可查看当前应用程序版本信息,通过Toast消息显示当前版本号。

4.退出部分:用户点击后退出应用程序,点击后跳转至登录页面(LoginActivity),并结束当前活动。

图片

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Fragment.MineFragment">

    <!-- TODO: Update blank fragment layout -->
    <View
        android:id="@+id/view6"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="#00BCD4"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textViews8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="个人中心"
        android:textColor="#fff"
        android:textSize="20sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="@+id/view6"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/view6" />

    <ImageView
        android:id="@+id/imageView14"
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:scaleType="centerCrop"
        android:src="@drawable/studywd"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/view6" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView14">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:padding="10dp">

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_information"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="#fff"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:padding="10dp">

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="10dp"
                android:src="@drawable/information" />

            <TextView
                android:id="@+id/textView5"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="8dp"
                android:layout_weight="1"
                android:gravity="center|left"
                android:text="个人信息"
                android:textColor="#000"
                android:textSize="13sp" />

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="15dp"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:src="@drawable/right" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_password"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:background="#fff"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:padding="10dp">

            <ImageView
                android:id="@+id/imageView12"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="10dp"
                android:src="@drawable/password" />

            <TextView
                android:id="@+id/textView10"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="8dp"
                android:layout_weight="1"
                android:gravity="center|left"
                android:text="修改密码"
                android:textColor="#000"
                android:textSize="13sp" />

            <ImageView
                android:id="@+id/imageView13"
                android:layout_width="15dp"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:src="@drawable/right" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_versions"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:background="#fff"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:padding="10dp">

            <ImageView
                android:id="@+id/imageView8"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="10dp"
                android:src="@drawable/banben" />

            <TextView
                android:id="@+id/textView8"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="8dp"
                android:layout_weight="1"
                android:gravity="center|left"
                android:text="当前版本"
                android:textColor="#000"
                android:textSize="13sp" />

            <ImageView
                android:id="@+id/imageView9"
                android:layout_width="15dp"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:src="@drawable/right" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_quit"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginTop="20dp"
            android:background="#fff"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:padding="10dp">

            <ImageView
                android:id="@+id/imageView10"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="10dp"
                android:src="@drawable/quit" />

            <TextView
                android:id="@+id/textView9"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="8dp"
                android:layout_weight="1"
                android:gravity="center|left"
                android:text="退出登录"
                android:textColor="#000"
                android:textSize="13sp" />

            <ImageView
                android:id="@+id/imageView11"
                android:layout_width="15dp"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:src="@drawable/right" />
        </LinearLayout>

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

6.个人信息页面

显示用户注册时的信息

图片

7.修改密码页面

图片

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HDL-A/1-110VAC-2电流继电器 JOSEF约瑟 导轨安装

一. 应用 HDL系列电流继电器是静态型&#xff0c;不带方向性的、瞬动、交流电流继电器。可用于电力系统输电线,电机过负荷和短路保护中&#xff0c;作为启动元件。 继电器对短路电流中的直流分量不敏感&#xff0c;因此可用于要求哲态超小的线路中&#xff0c;改继电器由集成…

SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图(五)

SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图&#xff08;五&#xff09; 参考 目录 文章目录 SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图&#xff08;五&#xff09;1、设置sping.beaninfo.ignore属性2、…

一文带你搞懂单模光纤和多模光纤的区别

单模光纤和多模光纤的区别及常见疑问解答 随着网络技术的飞跃&#xff0c;光纤因其高速传输与大容量特性&#xff0c;成为通信领域的佼佼者。光纤主要分为单模与多模&#xff0c;两者在几何与传输特性上迥异&#xff0c;实际应用中表现显著不同。本文将深入剖析两者的差异与应用…

记一次黑群晖折腾的过程

Tips&#xff1a; 建议先完整看完这篇文章&#xff0c;理解大致流程后再上手操作&#xff0c;其中有一些注意点需要事先了解 安装黑群晖的教程网上很多&#xff0c;我是参考了这篇&#xff1a; https://post.smzdm.com/p/am3epen4/前言在上一盘文章中组装了一台黑群晖&#…

Docker基础篇之将本地镜像发布到私有库

文章目录 1. Docker Registry简介2. 将本地镜像推送到私有库 1. Docker Registry简介 Docker Registry是官方提供的工具&#xff0c;可以用于构建私有镜像仓库。 2. 将本地镜像推送到私有库 下载Docker Registry docker pull registry现在我们可以从镜像中看到下载的Regist…

数据持久化第七课-URL重写与Ajax

数据持久化第七课-URL重写与Ajax 一.预习笔记 1.URL重写(对网页地址进行保护) 首先编写module,实现对网络地址的处理 其次就是module的配置 最后验证url重写技术 2.Ajax数据交互 编写后端响应数据 处理跨域的配置问题 运行项目得到后端响应数据的地址 编写前端ajax进行数据请…

基于VGG16的猫狗数据集分类

目录 1. 作者介绍2. VGG16介绍2.1 背景介绍2.2 VGG16 结构 3. Cat VS Dog数据集介绍4. 实验过程4.1 数据集处理4.2 训练部分设置4.3 训练结果4.4 问题分析4.5 单张图片测试 5.完整训练代码与权重参考文献 1. 作者介绍 孙思伟&#xff0c;男&#xff0c;西安工程大学电子信息学…

Accelerate 笔记:保存与加载文件

保存和加载模型、优化器、随机数生成器和 GradScaler 使用 save_state() 将上述所有内容保存到一个文件夹位置使用 load_state() 加载之前通过 save_state() 保存的状态通过使用 register_for_checkpointing()&#xff0c;可以注册自定义对象以便自动从前两个函数中存储或加载 …

epoll源码分析

epoll源码分析 主要数据结构epoll_create()函数实现ep_alloc()&#xff1a;初始化结构初始化eventpoll epoll_ctl()函数实现ep_insert回调函数的实现ep_ptable_queue_proc函数ep_poll_callback epoll_wait函数SYSCALL_DEFINE4(epoll_wait, ...)ep_pollep_send_events 主要数据结…

百度/迅雷/夸克,网盘免费加速,已破!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 之前给大家安利了百度网盘及迅雷的加速方法&#xff0c;详细方法及获取参考之前文章&#xff1a; 刚刚&#xff01;度盘、某雷已破&#xff01;速度50M/s&#xff01; 本次主要介绍夸…

基于DeepLabv3+实现图像分割

目录 1. 作者介绍2. DeepLabv3算法2.1 DeepLabv3算法介绍2.2 DeepLabv3模型结构 3. 实验过程基于DeepLabv3实现图像分割3.1 VOC数据集介绍3.2 代码实现3.3 问题分析 4. 参考连接 1. 作者介绍 吴天禧&#xff0c;女&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究…

派派派森02

目录 1.容器 1.列表 2.元组 3.字符串 3.序列 4.集合 5.字典 2.数据容器通用操作 • max最大元素 • min最小元素 • 容器的通用转换功能 • 通用排序功能 3.字符串大小比较 4.函数中多个返回值 5.函数参数多种传递方式 1.位置参数 2.关键字参数 3.缺省参数 …

(函数)判断字符串元音字母(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明判断元音函数&#xff1b; void vowel(char a[100], char b[100]);int main() {//初始化变量值&#xff1b;char a[100] { 0 };char b[100] { 0 };//获取…

Python 图书馆管理系统 有GUI界面 【含Python源码 MX_031期】

使用python3&#xff0c;PyQt5&#xff0c;Sqlite3数据库搭建 数据库版本为MySQL&#xff1a;Python 图书馆管理系统&#xff08;MySQL数据库&#xff09; 有GUI界面 【含Python源码 MX_032期】-CSDN博客 主要功能&#xff1a; 用户注册、登录、修改密码、用户管理存储图书信…

Springboot校园美食推荐系统的开发-计算机毕业设计源码44555

摘要 随着人们生活水平的提高&#xff0c;人们对美食的要求也越来越高&#xff0c;对各类美食信息需求越来越大。因此&#xff0c;结合计算机快速发展、普及&#xff0c;在此基础上制作一个页面简单、美观,功能实用的校园美食推荐系统势在必行&#xff0c;满足用户分享美食的需…

【科学文献计量】使用Endnote软件打开中国知网导出的文献期刊解析不正确问题解决

使用Endnote软件打开中国知网导出的文献期刊解析不正确问题解决 问题解决问题 新建一个Endnote的材料库,然后把下载好的中国知网文献数据(知网数据导出的是Endnote格式样式)导入进来。找到文件所在路径,导入的类型选择是“Endnote import”,然后点击确定,界面结果如下 …

【Web API DOM04】事件类型、对象、解绑

一&#xff1a;事件类型 1 鼠标事件 常见鼠标事件 鼠标点击事件&#xff1a;’click‘ 鼠标移入事件&#xff1a;‘mouseenter’ 鼠标离开事件&#xff1a;‘mouseleave’ 鼠标经过事件区别 mouseover和mouseout会有冒泡效果 mouvseenter和mouseleave没有冒泡效果 2 焦…

有哪些挣钱软件一天能赚几十元?盘点十个能长期做下去的挣钱软件

在这个信息爆炸的时代&#xff0c;每个人都在寻找快速赚钱的秘诀。很多人做兼职副业的目标并不是获得很大的成功&#xff0c;大部分人一天能赚几十就心满意足了。 今天&#xff0c;我要带你一探究竟&#xff0c;揭秘那些能让你日赚几十元的挣钱软件。准备好了吗&#xff1f;让我…

vue3+typescript 使用Codemirror

安装 // npm npm install codemirror-editor-vue3 codemirror^5.65.12// ts版 还需安装&#xff1a; npm install types/codemirror全局注册 修改main.ts&#xff1a; import { createApp } from vueimport App from ./App.vueimport { InstallCodemirro } from "code…

面向对象程序设计之从C到C++的初步了解

1. C语言 1. C的发展 C是从C语言发展演变而来的&#xff0c;首先是一个更好的C引入了类的机制&#xff0c;最初的C被称为“带类的C”1983年正式取名为C 从1989年开始C语言的标准化工作 于1994年制定了ANSIC标准草案 于1998年11月被国际标准化组织(ISO)批准为国际标准&#xf…