• Android程序设计之学校疫情防控管理


    基于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;
    
        @Override
        protected View getLayoutId() {
            mBinding = ActivityLoginBinding.inflate(getLayoutInflater());
            return mBinding.getRoot();
        }
    
        @Override
        protected void setListener() {
    
            mBinding.register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
                }
            });
    
            mBinding.login.setOnClickListener(new View.OnClickListener() {
                @Override
                public 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("请先注册");
                            }
    
    
                        }
    
                    }
                }
            });
    
        }
    
        @Override
        protected void initData() {
            mUserDao = new UserDao(this);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    注册

    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 = "学生";
    
        @Override
        protected View getLayoutId() {
            mBinding = ActivityRegisterBinding.inflate(getLayoutInflater());
            return mBinding.getRoot();
        }
    
        @Override
        protected void setListener() {
    
            mBinding.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup radioGroup, int i) {
                    RadioButton rb_temp = findViewById(radioGroup.getCheckedRadioButtonId());
                    register_type = rb_temp.getText().toString();
                }
            });
    
            mBinding.register.setOnClickListener(new View.OnClickListener() {
                @Override
                public 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();
    
                    }
    
                }
            });
        }
    
        @Override
        protected void initData() {
            mUserDao = new UserDao(this);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    学生端主页

    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;
    
        @Override
        protected View getLayoutId() {
            mBinding = ActivityStudentMianBinding.inflate(getLayoutInflater());
            return mBinding.getRoot();
        }
    
        @Override
        protected void setListener() {
            mBinding.healthCode.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(StudentMainActivity.this, HealthTableListActivity.class));
                }
            });
    
            mBinding.leave.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(StudentMainActivity.this, StudentLeaveListActivity.class));
                }
            });
            mBinding.backSchool.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(StudentMainActivity.this, BackSchoolListActivity.class));
                }
            });
    
        }
    
        @Override
        protected void initData() {
    
            UserInfo userInfo = UserInfo.getUserInfo();
            if (null != userInfo) {
                mBinding.title.setText("欢迎" + userInfo.getUsername() + "学生");
            }
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
  • 相关阅读:
    【Nacos】spring cloud (feign)+ Nacos 负载均衡实现
    10月27日,每日信息差
    博士期间可读的工具书目(含英文原版网盘资源)
    linux系统Docker容器Dockerfile简单描述
    硬件基础 -比较器
    旅游网站大数据分析 - 数据抓取
    CompletableFuture 用法全解——源码还没看懂
    (更新中)数据结构开发实战教程
    数据集:机器人理解世界的关键
    网络安全等级保护相关标准及发展
  • 原文地址:https://blog.csdn.net/jky_yihuangxing/article/details/127960619