基于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() + "学生");}}
}
上一篇:红尘女子是什么意思