【Android学习之路】之从零开始做一个小项目(四)

这是【Android学习之路】之从零开始做一个小项目的第四篇,本篇以讲解进度和想法为主,欢迎阅读~


目前进度

① 完善了上一期设计中的不足地方
② 把在整个app使用过程中常用的几个重要用户信息设置成了全局变量
③ 【学习】页面和【我的】页面里的【待定】基本已经构思完整,并且已经实现很多功能和界面
④ 【课程表】页面功能重新进行了整改,做了新的处理


咳咳,有些狼狈的是今天下午之后我的Android Studio的gradle部署一直没有弄好,之前解决的所有方法均试过,上周也出现过这种情况,希望明天能回复正常。所以一些界面和功能暂时演示不了,只有一部分昨天的截图可以贴出来参考,我多讲解一下叭,对了,下周(也就是明天开始的这周)这个项目应该就能完成了!近几天再加把劲💪

上一期功能的完善

1. 个人资料页面

在这里插入图片描述
个人资料页面我加上了【班级】这一信息,当然,这是因为这周设计了相关功能后可以加上这个资料显示,我对原先的课程表和班级表也做了相应的修改,一会儿会展示一下相关的建表SQL语句。

2. 【课程表】界面的整改

首先,界面上没有大变化,我只是加上了一个【删除课程】按钮,加上这个按钮是因为新功能的原因~
在这里插入图片描述
功能上,分成【教师】和【学生】两类。
①教师: 点击跳转课程表界面后,如果是第一次打开(我添加了标记)的话会先跳转至一个让教师添加课程的页面,每位教师最多可添加5门课程,在添加课程时需要相应的填写课程的ID、课程名、该课程的学分,添加好后会让其继续填写每个课程的时间段(为了方便设置到课程表的TextView上,我选择周一到周日分开填写),当然会有相应的一些填写的正确性的检验。当课程录入成功后就会跳转到课程表页面,课程名动态地填入TextView中。
②学生: 点击跳转课程表界面后会用当前学生用户的ID到course表中查询,如果没有选课的信息,则先跳转到一个提示页面(类似404页面那样),让用户进行选课,可展示出当前所有的课程(设置一个模糊查询可以提升用户查找课程的效率),同样的,将要选择的课程填入相应的框中即可(这里填入的时候就顺带和上课时间一起选择了)
👀以上的功能在实现时遇到一点问题,所以今天在不断修改,下午之后gradle部署不成功也就意味着没法调试,,祈祷明天能弄好🙏

3. 修改了之前用Bundle在几个Activity间不断传值的方法

因为当前登录用户的一些信息(ID和账号)需要多次重复使用,之前采取的方法是用Bundle传值,但是这样的话会重复写很多次,,有些麻烦了,我这周采取了全局变量来解决相关的问题。
我把当前登录用户(教师或学生)在登录成功后的ID和账号保存为全局变量,在需要用到的地方直接拿来用就行了,省的传值传来传去的 哈哈,这个实现全局变量的类如下:

package com.henry.myschoolsystem.utils;

/**
 * 将需要用到多次的当前登录的账号信息保存为全局变量
 */
public class CurrentUser {
    private static String userName;
    private static String nickName;
    private static String userID;

    public static String getUserName() {
        return userName;
    }

    public static void setUserName(String s) {
        CurrentUser.userName = s;
    }

    public static String getNickName() {
        return nickName;
    }

    public static void setNickName(String s) {
        CurrentUser.nickName = s;
    }

    public static String getuserID() {
        return userID;
    }

    public static void setuserID(String id) {
        CurrentUser.userID = id;
    }
}

我这里把昵称也弄成全局变量时因为在【我的】页面需要展示用户的昵称,以及用户修改个人信息后昵称变化的话还需要传值,因为我的布局的一些特殊性,这样会比较麻烦,所以我直接把它保存成全局变量,炒鸡方便~


新增的页面以及功能

1. 【我的】页面功能扩展

之前【我的】页面中大家也知道了,有两个TextView是待定的,这周突然有些想法就给加上了~
在这里插入图片描述
👀这里展示的是【星座】,这里的话可以提供用户查询自己星座,然后显示出相应星座的一些星座传说啥的(现在的界面还不够美观,之后会美化的嘻嘻😁)
在这里插入图片描述
这个只是效果展示图,功能就不演示啦,最终的总结篇会详细的讲解的~

2. 【课程】页面功能

在这里插入图片描述
这个是教师端的【课程】页面基本结构,当然最终的页面肯定会比现在美观一些😅
教师在该页面可以有三个选择:查看自己所教课程的情况、查看自己的班级(如果是班主任的话)、出题
① 所教课程的话会做一个判断,如果当前教师用户未绑定课程,会弹出窗口提示并可跳转至课程表页面进行上面所讲的操作。绑定了课程的话,这里点击后会列出该课程所有学生的学号、姓名以及成绩等相关信息。
② 查看自己的班级会先判断是否是班主任(班主任用标记来区分),这里涉及到班级以及班主任的添加,这个是【管理员】的功能,【管理员】身份是我全面考虑之后决定要加上的,他可以添加和删除教师、学生、班级。
③ 出题功能还在筹划中,尽快设计好并实现叭

最后展示当前一部分的建表SQL语句叭

public void onCreate(SQLiteDatabase db) {
        /**
         * 当该子类被实例化时会创建指定名的数据库,在onCreate中按以下的SQL语句创建相应的表
         * **/
        db.execSQL("CREATE TABLE IF NOT EXISTS " + TEACHER_INFO + "( "
                + "ID TEXT PRIMARY KEY, "
                + "userName TEXT NOT NULL, "
                + "realName TEXT NOT NULL, " //真实姓名
                + "nickName TEXT, "  //昵称
                + "isHead TEXT NOT NULL, "  //标记是否为班主任
                + "sex TEXT, "
                + "qq TEXT, "
                + "wechat TEXT, "
                + "motto TEXT, "
                + "phoneNumber TEXT NOT NULL, "
                + "password TEXT NOT NULL"
                + ")");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + STUDENT_INFO + "( "
                + "ID TEXT PRIMARY KEY, "
                + "userName TEXT NOT NULL, "
                + "realName TEXT NOT NULL, "  //真实姓名
                + "nickName TEXT, "  //昵称
                + "sex TEXT, "
                + "qq TEXT, "
                + "wechat TEXT, "
                + "motto TEXT, "
                + "phoneNumber TEXT, "
                + "password TEXT NOT NULL"
                + ")");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + CLASS + "( "
                + "classID TEXT PRIMARY KEY, "
                + "className TEXT NOT NULL, "
                + "year TEXT NOT NULL, "  //年级
                + "studentID TEXT REFERENCES studentInfo(ID), "
                + "teacherName TEXT REFERENCES teacherInfo(realName), "  //班主任姓名
                + "code TEXT NOT NULL "  //学生加入班级需要的验证码
                + ")");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + COURSE + "( "
                + "courseID TEXT PRIMARY KEY, "
                + "courseName TEXT NOT NULL, "
                + "studentID TEXT REFERENCES studentInfo(ID), "
                + "teacherName TEXT REFERENCES teacherInfo(realName), " //任课教师姓名
                + "grade TEXT, "  //学生所得分数
                + "credit TEXT NOT NULL "  //该课程的学分
                + ")");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + SPLAN + "( "
                + "planID TEXT PRIMARY KEY, "
                + "planContent TEXT NOT NULL, " //计划的具体内容
                + "studentID TEXT REFERENCES studentInfo(ID), "
                + "deadline TEXT NOT NULL, " //计划的最终期限
                + "isFinished TEXT NOT NULL "  //标记该计划是否完成
                + ")");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + TPLAN + "( "
                + "planID TEXT PRIMARY KEY, "
                + "planContent TEXT NOT NULL, " //计划的具体内容
                + "TeacherID TEXT REFERENCES teacherInfo(ID), "
                + "deadline TEXT NOT NULL, " //计划的最终期限
                + "isFinished TEXT NOT NULL "  //标记该计划是否完成
                + ")");
    }

计划用触发器来记录用户的登录日志,虽然其他方式也能实现该功能,不过既然学了还是打算用用 哈哈~


目前要做的重点

① 调试完成上面提到的一些功能和界面
② 【计划】页面再做整改
③ 出题功能尽快设计并实现
④ 完善各个页面,让其更加美观


这期依然是以介绍进度和展示为主,一些细节的地方未做介绍,因为部署文件的原因新增的一些部分未经过调试就不做演示啦😁
这周搞定它,冲冲冲💪!

第二阶段传送:【Android学习之路】之从零开始做一个小项目(三)
下一阶段应该就是最终版本啦嘻嘻~

(ps:在最终项目完成后我会将项目源码上传至GitHub😊,希望大家耐心等待~)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值