当前位置:   article > 正文

基于Android的学生学习打卡监督系统APP(Android Studio开发)_基于androidstudio学生学习打卡

基于androidstudio学生学习打卡

1.绪论 1
1.1课题开发背景 2
1.2课题开发目的及意义 3
2.系统分析 3
2.1研究目标 3
2.2需求分析 3
2.3系统开发流程 4
2.4程序特点 4
3.系统开发环境及架构图 5
3.1 Android开发环境介绍 5
3.2 项目架构 5
4.系统设计实现及界面 6
4.1系统操作流程图 6
4.2开始页面 7
4.3登陆和注册页面 9
4.4任务添加界面 11
4.5任务添加成功及显示页面 12
4.6任务编辑页面 13
4.7提醒功能 14
5.数据库设计 15
6.测试分析 15
6.1开发过程中的问题 15
总结 16
致谢 16
参考文献 17
2.系统分析
2.1研究目标
(1)学习Android系统的运行过程,了解Android开发过程,学会单独完成一款Android软件的设计到实现。
(2)使用多种组件及框架联合开发进行Android平台的学习监督应用的开发。本软件是基于Android Studio作为开发环境,使用安卓内置SQlite数据库作为存储数据库。
2.2需求分析
本软件是一个基于Android平台的应用程序,在程序启动后,进行登录,登录之后可以为用户进行提醒备忘功能,为自己设置任务时间,设置想要完成的任务目标,最后提交到数据库,显示在应用的主界面,以此来提醒用户接下来要完成的学习任务和最后时限。
由以上可以总结出该应用需要的功能
(1)登陆注册功能:注册用户时将用户的信息存储在Shareprefence中然后登录,从存储中和文本框内的数据进行对比,相等则进入程序,不相等则进行提示。
(2)添加任务功能:用户进入系统后,可以点击 “添加”按钮进行任务的添加,在任务添加界面添加任务内容的文字描述,对任务完成的时间进行设置,最后点击“确认”按钮,将数据提交到数据库中
(3)显示任务功能:在主页面显示当前已经添加了的学习任务和学习任务的截止时间。
(4)编辑和删除任务功能:可以对已经添加了的学习任务进行编辑和删除操作。
(5)任务提醒功能:当设置的任务结束时间到达的时候,进行闹钟提醒,调用日历控件对用户进行提醒。
2.3系统开发流程
一个良好的可以运行使用的软件必须有严格的系统开发流程,从选题立意到项目的定位都需要确定,甚至一些优秀的软件需要大规模的市场调查和严格的审核才可以进行项目的启动,所以一套量高的系统开发流程是很有必要的。
在这里插入图片描述

图2.1
2.4程序特点
为了方便使用,本设计的页面十分的干净整洁,具有良好的人机交互环境,简洁可爱的界面动画效果为本产品的形象大大加分,提升学习监督系统的第一印象,也为用户带来良好的用户体验,此外主界面的功能也更加的一目了然,本产品主要的用户群体是更为年轻化的学生用户群体,该用户群体有着较强的新生事物的接受和理解能力对于本产品有着较强的接受能力,对于没有见过的新型软件可以很快的上手使用。本文转载自http://www.biyezuopin.vip/onews.asp?id=16109程序有良好的运行速度,使用安卓内置的SQLite数据库将大大的提高应用程式的便捷性和灵活性,同时也保证了用户数据不会泄露,在另一方面也保证了信息处理速度。
3.系统开发环境及架构图
3.1 Android开发环境介绍
Android系统的底层核心是Linux系统,而系统表层的编写语言还是以Java语言为主,所以要想进行Android系统地开发必须现将Java的环境布置好,也就是Java工具包和Java虚拟运行环境,而谷歌公司为了方便Android系统地开发也特意开发了Android Studio作为专门的Android开发工具,同时想要进行Android开发也必须像Java一样安装相应的Android工具包,而Android的运行环境则可以在Android Studio中进行布置,选择相应的合适的分辨率及屏幕大小,Android程序就可以在电脑上运行了。

package com.lsvs.login;

import android.content.Intent;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.lsvs.BaseActivity;
import com.lsvs.R;
import com.lsvs.bean.User;
import com.lsvs.db.UserDao;
import com.lsvs.home.HomeActivity;


/**
 * A login screen that offers login via email/password.
 */
public class LoginActivity extends BaseActivity {

    // UI references.
    private AutoCompleteTextView mEmailView;
    private EditText mPasswordView;
    private View mProgressView;
    private View mLoginFormView;

    @Override
    protected boolean showAppBar() {
        return true;
    }

    @Override
    protected boolean showBack() {
        return true;
    }

    @Override
    protected String appBarTitle() {
        return "登录";
    }

    @Override
    public int getContentId() {
        return R.layout.activity_login;
    }

    @Override
    protected void loadData() {

    }

    @Override
    protected void buildView() {
        mEmailView = findViewById(R.id.email);
        mPasswordView = findViewById(R.id.password);
        mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
                if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
                    attemptLogin();
                    return true;
                }
                return false;
            }
        });

        Button mEmailSignInButton = findViewById(R.id.email_sign_in_button);
        mEmailSignInButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                attemptLogin();
            }
        });

        mLoginFormView = findViewById(R.id.email_login_form);
        mProgressView = findViewById(R.id.login_progress);
    }

    private void attemptLogin() {
        mEmailView.setError(null);
        mPasswordView.setError(null);
        String email = mEmailView.getText().toString();
        String password = mPasswordView.getText().toString();

        boolean cancel = false;
        View focusView = null;

        if (TextUtils.isEmpty(password)) {
            mPasswordView.setError(getString(R.string.error_invalid_password));
            focusView = mPasswordView;
            cancel = true;
        }

        if (TextUtils.isEmpty(email)) {
            mEmailView.setError(getString(R.string.error_field_required));
            focusView = mEmailView;
            cancel = true;
        }

        if (cancel) {
            focusView.requestFocus();
        } else {
            showProgress(true);
            doLogin(email, password);
        }
    }

    private void doLogin(String email, String password) {
        UserDao userDao = new UserDao(getBaseContext());
        User user = userDao.findByNamePwd(email, password);
        if (user == null) {
            Toast.makeText(this, "用户不存在", Toast.LENGTH_SHORT).show();
            showProgress(false);
        } else {
            if (user.getPassword().contentEquals(password)) {
                Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
                sharedPreferences.edit().putString("loginUserName", user.getUserName()).apply();
                startActivity(new Intent(this, HomeActivity.class));
                setResult(RESULT_OK);
                finish();
            } else {
                Toast.makeText(this, "密码不正确", Toast.LENGTH_SHORT).show();
                showProgress(false);
            }
        }
    }

    private void showProgress(boolean show) {
        mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
        mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

}


  • 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
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/122298
推荐阅读
相关标签
  

闽ICP备14008679号