Android程序设计之学校疫情防控管理
创始人
2024-02-05 06:24:15

基于Android实现的学校疫情防控管理,项目采用SQLite来存储数据。

SQLite 简介

SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。

什么是 SQLite?
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

为什么要用 SQLite?

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。

  • SQLite 不需要配置,这意味着不需要安装或管理。

  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。


项目效果截图

学生端:(上交健康表,申请请假,申请返校)
在这里插入图片描述
在这里插入图片描述

教师端:(上交教师健康表,申请入校)

在这里插入图片描述

辅导员:(审批请假,审批返校)
在这里插入图片描述


学院疫情负责人

在这里插入图片描述


学院疫情工作联系人
在这里插入图片描述


核心代码实现

登录

package com.app.disease;import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;import com.app.disease.base.BaseActivity;
import com.app.disease.dao.UserDao;
import com.app.disease.databinding.ActivityLoginBinding;
import com.app.disease.entity.UserInfo;public class LoginActivity extends BaseActivity {private ActivityLoginBinding mBinding;private UserDao mUserDao;@Overrideprotected View getLayoutId() {mBinding = ActivityLoginBinding.inflate(getLayoutInflater());return mBinding.getRoot();}@Overrideprotected void setListener() {mBinding.register.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(LoginActivity.this, RegisterActivity.class));}});mBinding.login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String username = mBinding.username.getText().toString();String password = mBinding.password.getText().toString();if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {Toast.makeText(LoginActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();} else {UserInfo login = mUserDao.login(username);if (null != login) {if (login.getUsername().equals(username) && login.getPassword().equals(password)) {if (login.getRegister_type().equals("学生")) {UserInfo.setUserInfo(login);startActivity(new Intent(LoginActivity.this, StudentMainActivity.class));} else if (login.getRegister_type().equals("辅导员")) {UserInfo.setUserInfo(login);startActivity(new Intent(LoginActivity.this, InstructorMainActivity.class));} else if (login.getRegister_type().equals("教师")) {UserInfo.setUserInfo(login);startActivity(new Intent(LoginActivity.this, TeacherMainActivity.class));} else if (login.getRegister_type().equals("学院疫情工作联系人")) {UserInfo.setUserInfo(login);startActivity(new Intent(LoginActivity.this, ContactsMainActivity.class));} else if (login.getRegister_type().equals("学院疫情负责人")) {UserInfo.setUserInfo(login);startActivity(new Intent(LoginActivity.this, PrincipalMainActivity.class));} else {showToast("用户名或密码错误");}} else {showToast("请先注册");}}}}});}@Overrideprotected void initData() {mUserDao = new UserDao(this);}
}

注册

package com.app.disease;import android.text.TextUtils;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;import com.app.disease.base.BaseActivity;
import com.app.disease.dao.UserDao;
import com.app.disease.databinding.ActivityRegisterBinding;public class RegisterActivity extends BaseActivity {protected ActivityRegisterBinding mBinding;private UserDao mUserDao;private String register_type = "学生";@Overrideprotected View getLayoutId() {mBinding = ActivityRegisterBinding.inflate(getLayoutInflater());return mBinding.getRoot();}@Overrideprotected void setListener() {mBinding.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup radioGroup, int i) {RadioButton rb_temp = findViewById(radioGroup.getCheckedRadioButtonId());register_type = rb_temp.getText().toString();}});mBinding.register.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String username = mBinding.username.getText().toString();String password = mBinding.password.getText().toString();if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {Toast.makeText(RegisterActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();} else {int row = mUserDao.register(username, password, register_type);if (row > 0) {Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show();}finish();}}});}@Overrideprotected void initData() {mUserDao = new UserDao(this);}
}

学生端主页

package com.app.disease;import android.content.Intent;
import android.view.View;import com.app.disease.base.BaseActivity;
import com.app.disease.databinding.ActivityStudentMianBinding;
import com.app.disease.entity.UserInfo;/**** 学生端主页*/
public class StudentMainActivity extends BaseActivity {private ActivityStudentMianBinding mBinding;@Overrideprotected View getLayoutId() {mBinding = ActivityStudentMianBinding.inflate(getLayoutInflater());return mBinding.getRoot();}@Overrideprotected void setListener() {mBinding.healthCode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(StudentMainActivity.this, HealthTableListActivity.class));}});mBinding.leave.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(StudentMainActivity.this, StudentLeaveListActivity.class));}});mBinding.backSchool.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {startActivity(new Intent(StudentMainActivity.this, BackSchoolListActivity.class));}});}@Overrideprotected void initData() {UserInfo userInfo = UserInfo.getUserInfo();if (null != userInfo) {mBinding.title.setText("欢迎" + userInfo.getUsername() + "学生");}}
}

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...