首页 > 其他分享 >02每日打卡APP

02每日打卡APP

时间:2023-06-10 22:46:02浏览次数:26  
标签:02 name APP public import 打卡 password android String

02每日打卡APP

2023.6.10

第一阶段目标:

1、用户注册:用户注册信息包括用户ID(学号)、用户名(姓名),手机号码,用户单位(班级),用户班级四项基本信息,用户第一次注册后,用户姓名不用每次输入  。

2、每日总结打卡:内容包括:日期、每日关键字、每日总结、坚持天数(自动计数,显示上次天数)、连续最长天数。

3、每日提醒记事本:设置每日事件闹钟,可以提醒用户每日必做事件。

4、当天数据存储到本地数据库,其余数据存储到远程服务器上。

第二阶段目标:

1、汇总统计:教师可以查询统计所有同学的每日打卡记录。

2、每日总结查询:可以按照关键字、每日总结查询。

3、自动从数据库中生成所有人的每日总结记录,包括序号、班级、学号、姓名、发表总次数。

 

 

 

 

 

package com.example.newone;

 

import androidx.appcompat.app.AppCompatActivity;

 

import android.os.Bundle;

 

public class good extends AppCompatActivity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_good);

    }

}

 

 

package com.example.newone;

 

import android.content.Intent;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

import androidx.appcompat.app.AppCompatActivity;

 

import com.example.clock.db.DatabaseHelper;

 

import java.util.ArrayList;

 

public class Login extends AppCompatActivity {

 

    private DatabaseHelper mSQLite;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_login);

        Button btn_login = findViewById(R.id.login);

        Button btn_register = findViewById(R.id.register);

        EditText ed_name = findViewById(R.id.userName);

        EditText ed_password = findViewById(R.id.userpassword);

 

        btn_login.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

 

                String name = ed_name.getText().toString().trim();

                String password = ed_password.getText().toString().trim();

 

                ArrayList<User> data = mSQLite.getAllDATA();

                boolean flag = false;

                for(int i = 0; i < data.size(); i++){

                    User userdata = data.get(i);

                    if(name.equals(userdata.getName())&&password.equals(userdata.getPassword())){

                        flag = true;

                        break;

                    }else{

                        flag = false;

                    }

                }

 

                if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(password)){

                    if(flag){

                        Intent intent1 = new Intent(Login.this, MainActivity.class);

                        startActivity(intent1);

                        finish();

                        Toast.makeText(Login.this, "登录成功", Toast.LENGTH_SHORT).show();

                    }

                    else{

                        Toast.makeText(Login.this, "用户名或密码不正确", Toast.LENGTH_SHORT).show();

                    }

                }

                else{

                    Toast.makeText(Login.this, "用户名与密码不能为空", Toast.LENGTH_SHORT).show();

                }

            }

        });

 

        btn_register.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent intent2 = new Intent(Login.this, Register.class);

                startActivity(intent2);

                finish();

            }

        });

        mSQLite = new DatabaseHelper(Login.this);

    }

}

 

package com.example.newone;

 

import androidx.appcompat.app.AppCompatActivity;

 

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

//import com.example.newone.javabean.User;

 

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button login, register, update;

    private EditText name, password;

    private MYsqliteopenhelper mYsqliteopenhelper;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mYsqliteopenhelper = new MYsqliteopenhelper(this);

        find();

    }

 

    private void find() {

        login = findViewById(R.id.login);

        register = findViewById(R.id.register);

        name = findViewById(R.id.edname);

        password = findViewById(R.id.edpassword);

        update = findViewById(R.id.update2);

 

 

        login.setOnClickListener(this);

        register.setOnClickListener(this);

        update.setOnClickListener(this);

 

 

    }

 

    @Override

    public void onClick(View view) {

        int id = view.getId();

        switch (id) {

            case R.id.login:

                String s = name.getText().toString();

                String s1 = password.getText().toString();

 

                boolean login = mYsqliteopenhelper.login(s, s1);

                if (login) {

                    Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show();

                    Intent i = new Intent(this, good.class);

                    startActivity(i);

                } else {

                    Toast.makeText(this, "登录失败!", Toast.LENGTH_SHORT).show();

                }

 

                break;

            case R.id.register:

                Intent i1 = new Intent(this, com.example.newone.register.class);

                startActivity(i1);

                break;

            case R.id.update2:

                Intent i2 =new Intent(this,update_test.class);

                startActivity(i2);

 

 

        }

    }

}

 

 

package com.example.newone;

 

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

 

import androidx.annotation.Nullable;

 

//import com.example.logindemo.javabean.User;

 

public class MYsqliteopenhelper extends SQLiteOpenHelper {

    private static final String DB_NAME="MYsqlite.db";

 

 

    private static final String create_users="create table users(name varchar(32),password varchar(32))";

 

 

    public MYsqliteopenhelper(@Nullable Context context) {

        super(context, DB_NAME, null, 1);

    }

 

    @Override

    public void onCreate(SQLiteDatabase sqLiteDatabase) {

        sqLiteDatabase.execSQL(create_users);

    }

 

    @Override

    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

 

    }

 

    public long register(User u){

        SQLiteDatabase db = getWritableDatabase();

        ContentValues cv =new ContentValues();

        cv.put("name",u.getName());

        cv.put("password",u.getPassword());

        long users = db.insert("users", null, cv);

        return users;

 

    }

 

    public boolean login(String name,String password){

        SQLiteDatabase db1 = getWritableDatabase();

        boolean result =false;

 

        Cursor users = db1.query("users", null, "name like ?", new String[]{name}, null, null, null);

        if (users !=null){

            while (users.moveToNext()){

                String password1 = users.getString(1);

                result=password1.equals(password);

                return result;

 

            }

 

        }

        return false;

 

    }

    public int update(String name,String NEWpassword,String password){

        SQLiteDatabase db2 = getWritableDatabase();

        ContentValues cv1=new ContentValues();

        boolean login = login(name, password);

        if (login){

            cv1.put("name",name);

            cv1.put("password",NEWpassword);

        }else {

            int o=-1;

            return o;

        }

 

        int i = db2.update("users", cv1, "name= ?", new String[]{name});

        return i;

 

    }

 

}

 

package com.example.newone;

 

import static com.example.clock.R.id.userNames;

 

import android.content.Intent;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

import androidx.appcompat.app.AppCompatActivity;

 

import com.example.clock.db.DatabaseHelper;

 

import java.util.ArrayList;

 

public class Register extends AppCompatActivity {

 

    private DatabaseHelper mSQLite;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_register);

 

        //找到各个控件

        Button btn_ready = findViewById(R.id.reday);

        Button btn_back = findViewById(R.id.back);

        EditText ed_name = findViewById(R.id.userName);

        EditText ed_password = findViewById(R.id.userpassword);

         EditText ed_name1 = findViewById(R.id.userNames);

         EditText ed_tel= findViewById(R.id.usertel);

        EditText ed_class = findViewById(R.id.userclass);

 

        //注册监听事件

        btn_ready.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                //获取输入的用户名和密码

                String name = ed_name.getText().toString().trim();

                String password = ed_password.getText().toString().trim();

                String name1 =ed_name1.getText().toString().trim();

                String tel = ed_tel.getText().toString().trim();

                String classs=ed_class.getText().toString().trim();

 

                //获取数据库数据,判断用户名是否已存在

                ArrayList<User> data = mSQLite.getAllDATA();

                boolean flag = false;

                for(int i = 0; i < data.size(); i++){

                    User userdata = data.get(i);

                    if(name.equals(userdata.getName())){

                        flag = true;

                        break;

                    }else{

                        flag = false;

                    }

                }

                //判断用户名和密码是否为空

                if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(password)){

                    if(!flag){

                        mSQLite.insert(name, password,name1,tel,classs);

                        Intent intent1 = new Intent(Register.this, Login.class);

                        startActivity(intent1);

                        finish();

                        Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();

                    }

                    else{

                        Toast.makeText(Register.this, "用户名已被注册", Toast.LENGTH_SHORT).show();

                    }

                }

                else{

                    Toast.makeText(Register.this, "用户名与密码不能为空", Toast.LENGTH_SHORT).show();

                }

            }

        });

 

        //监听返回按钮

        btn_back.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent intent2 = new Intent(Register.this, Login.class);

                startActivity(intent2);

                finish();

            }

        });

 

        mSQLite = new DatabaseHelper(Register.this);

    }

}

 

package com.example.newone;

 

import androidx.appcompat.app.AppCompatActivity;

 

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

public class update_test extends AppCompatActivity {

    private EditText name,password,repassword;

    private Button update;

    private MYsqliteopenhelper mYsqliteopenhelper2;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_update_test);

        mYsqliteopenhelper2 =new MYsqliteopenhelper(this);

        find();

 

    }

 

    private void find() {

        name =findViewById(R.id.etname2);

        password =findViewById(R.id.edpassword2);

        repassword =findViewById(R.id.repassword1);

    }

 

    public void xiugai(View view) {

        String s = name.getText().toString();

        String s1 = password.getText().toString();

        String s2 = repassword.getText().toString();

        int update = mYsqliteopenhelper2.update(s, s2, s1);

        if (update !=-1){

            Toast.makeText(this, "密码修改成功!", Toast.LENGTH_SHORT).show();

        }else {

            Toast.makeText(this, "密码修改失败!", Toast.LENGTH_SHORT).show();

        }

    }

}

 

package com.example.newone;

 

public class User {

    private String name;

    private String password;

 

    public User() {

    }

 

    public User(String name, String password) {

        this.name = name;

        this.password = password;

    }

 

    /**

     * 获取

     * @return name

     */

    public String getName() {

        return name;

    }

 

    /**

     * 设置

     * @param name

     */

    public void setName(String name) {

        this.name = name;

    }

 

    /**

     * 获取

     * @return password

     */

    public String getPassword() {

        return password;

    }

 

    /**

     * 设置

     * @param password

     */

    public void setPassword(String password) {

        this.password = password;

    }

 

    public String toString() {

        return "User{name = " + name + ", password = " + password + "}";

    }

}

标签:02,name,APP,public,import,打卡,password,android,String
From: https://www.cnblogs.com/ZRGUGUGU818/p/17472111.html

相关文章

  • 202306-人民当家作组 实验七 综合软件项目案例
    项目内容课程班级博客链接2020级卓越工程师班这个作业要求链接实验七综合软件项目案例团队名称人民当家作组团队的课程学习目标(1)练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途;(2)掌握软件项目的数据库逻辑结构设计方法;(3)掌握软件项目......
  • 202307-什么是快乐星球组 实验七:综合软件项目案例
    项目内容课程班级博客链接2020级计算机科学与技术本次作业要求链接实验七:综合软件项目案例团队名称什么是快乐星球组团队成员分工描述张倩:任务三、任务四、任务六贾小萌:任务二、任务六、撰写博客葛薇:任务一、任务五、任务七、任务八团队的课程学习目标......
  • 江苏省2023年普通高校招生全国统一考试游记
    前言好久没写博客了呢,这一个月一来也发生了很多事吧不过因为我的偷懒,很多有趣的事情都没有记录下来然后游记也不是考完就写的,也算是一个回忆吧Day1其实一开始我对自己的要求也不高,把试卷填满就行所以说上考场之前应该还算比较轻松吧然后第一天老师们送考的服装是红色的代......
  • 【帮转】网商银行大前端信息科技移动渠道部 2024届校招实习
    我们追求极致,但一直不够完美,因为还缺少独一无二的你。如果你是前端界的切图仔,脚本小子,天才极客、绝世高手、Github达人...,请给我们投简历吧。这里有通往华山之巅的缆车,师兄们已在山顶等你,优秀将会是你一辈子甩不掉的标签。不得不提醒下,加入我们后,你可能需要学会婉拒大量的异性表......
  • 2023/6/10 学习笔记
    欧拉图欧拉图的定义欧拉回路:所有的边都经历一次不重复的回路欧拉通路:所有的边都经历一次不重复的路径欧拉图:具有欧拉回路的图半欧拉图:具有欧拉通路的图 连通图只有0个或者偶数个奇数出度点判别方法:1.无向图欧拉回路:(1)除去度为0的点外,其他的点相互连通(2)顶点度数......
  • (2023.6.10)线程绑定到指定核上
    pthread_setaffinity_np与sched_setaffinity的区别:sched_setaffinity可在进程的线程中去修改亲和性写在启动脚本中是使用pthread_setaffinity_np、sched_setaffinity、还是tasklet?(https://www.cnblogs.com/x_wukong/p/5924298.html)c语言如何调用到系统命令reboot? 同时在......
  • 202303-天天向上队 实验七 综合软件项目案例
    项目内容课程班级博客链接2023年春软件工程这个作业要求链接实验七综合软件项目案例团队名称天天向上队团队的课程学习目标(1)练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途。(2)掌握软件项目的数据库逻辑结构设计方法。(3)掌握软件项目......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意软件......
  • 2023Fiddler抓包学习笔记 -- 环境配置及工具栏介绍
    一、Fiddler介绍Fiddler是位于客户端和服务器端的HTTP代理,常用来抓http数据包,可以监控浏览器所有的http和https流量,查看分析请求数据包和响应数据包,伪造请求和响应等功能。二、下载安装1、下载地址https://www.telerik.com/download/fiddler/fiddler42、一路下一步安装,安装完成后,发......
  • 2023-06-10:给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示 在节点网络
    2023-06-10:给定一个由n个节点组成的网络,用nxn个邻接矩阵graph表示在节点网络中,只有当graph[i][j]=1时,节点i能够直接连接到另一个节点j。一些节点initial最初被恶意软件感染。只要两个节点直接连接,且其中至少一个节点受到恶意软件的感染,那么两个节点都将被恶意......