首页 > 其他分享 >每日总结3/5

每日总结3/5

时间:2024-03-05 21:22:56浏览次数:26  
标签:总结 name 每日 db import android password public

今天学习了登陆界面的操作。

学习了连接数据库的用户登录:

package com.example.clock.db;



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.clock.jiben.User;
import com.example.clock.jiben.User;

import java.util.ArrayList;

public class DatabaseHelper extends SQLiteOpenHelper {
    //创建一个数据库
    private SQLiteDatabase db;

    public DatabaseHelper(@Nullable Context context) {
        super(context, "db_test", null, 1);
        db = getReadableDatabase();
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        //在第一次创建数据库的时候,创建一些字段
        String sql = "create table user(_id integer, name varchar(50), password varchar(40))";
        db.execSQL(sql);//sql语句的执行函数
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //如果这个表中存在user,我们可以先把他去掉,然后重新创建
        String sql = "DROP TABLE IF EXISTS user";
        db.execSQL(sql);
        onCreate(db);
    }
    //为使项目结构更加紧凑,我们在此类中编写增删改查的函数,因为只有登录和注册界面,因此只涉及到写入数据库insert和query的操作
    public void insert(String name,String password ){
        db.execSQL("insert into user(name,password)VALUES(?,?)",new Object[]{name,password});
    }

    public ArrayList<User> getAllDATA(){//查询数据库
        ArrayList<User> list = new ArrayList<User>();
        //查询数据库中的数据,并将这些数据按照降序的情况排列
        Cursor cursor = db.query("user",null,null,null,null,null,"name DESC");
        while(cursor.moveToNext()){
            int index_name = cursor.getColumnIndex("name");
            int index_password = cursor.getColumnIndex("password");
            String name = cursor.getString(index_name);
            String password = cursor.getString(index_password);
            list.add(new User(name,password));
        }
        return list;
    }
}
package com.example.clock;


import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

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 com.example.clock.db.DatabaseHelper;
import com.example.clock.jiben.User;
import com.example.clock.jiben.User;

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);
    }
}

 

标签:总结,name,每日,db,import,android,password,public
From: https://www.cnblogs.com/wangxinyuan1108/p/18054991

相关文章

  • elasticsearch知识点总结
    主要记录疑惑点和容易混淆的地方type和fields区别type是废弃功能,为了简化数据模型和提高性能,不再使用,底层的lucene无此概念。详见https://www.ddkk.com/zhuanlan/search/elasticsearch/1/12.htmlfiels跟type不是一个维度的东西,fiels是字段(term)的属性,主要用来定义一个字段不同......
  • 每日总结
    Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHash......
  • 2024.3.5总结
    今天学组合数学\(C(n,m)\)表示\(n\)个物品里面选\(m\)个的方案数\(C(n,m)=C(n-1,m)+C(n-1,m-1)=\frac{n!}{m!\times(n-m)!}\)第一题:前提条件是互质。F1:\(n^{-1}\equivn^{p-2}\pmodp\)F2:设\(a=\lfloorp/i\rfloor,b=p%i\)\[a\timesi+......
  • 2024.3.5总结
    CF1933F题目既然他要求出最少用时,考虑bfs思路1我们发现,我们不知道石头的位置,所以我们要记录时间\(\bmodn\)的值,\(O(N^3)\)暴力bfs思路2我们为了不记录时间这一维度,石头都是同时向上移动,可以看作是石头不动,机器人动之后不由自主地向下掉一格,终点也向下......
  • 代码随想录算法训练营第三十六天| ● 738.单调递增的数字 ● 968.监控二叉树 ● 总
    单调递增的数字 题目链接:738.单调递增的数字-力扣(LeetCode)思路:从左向右验证是否按位单调递增,如果出现递减的区间,则从该位开始验证该位减1后是否比左边的相邻位大,如果不符合就接着向左寻找这样的位,如果找到了,则将该位前面的位复制到结果中,该位减1加入结果,该位之后的位全部改......
  • 动态代理总结
    代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能两者的区别静态代理在编译时就已经实现,编译完成后代理类是一个实际的class文件动态代理在运行时动态生成的,即编译......
  • 每日导数75
    隐零点的多次转化已知函数\(f(x)=e^x-a\ln(x+1)\)(1)若\(f(x)\)的最值为\(a\),求\(a\)(2)当\(a=\dfrac{1}{e^n}(n\in\mathbb{N})\)时,证明:\(f(x)\geq(n+1)a\)解(1)由费马定理,连续函数在开区间内取最值,一定是导函数为\(0\)的点\(f^{\prime}(x)=e^x-\dfrac{a}{x+1}=0\),设其零......
  • 刷到好题来总结
    P2114[NOI2014]起床困难综合症分析这题是关于二进制的题目,题目中描述了大量位运算的知识,其实也是在暗示这题与位运算有关了。思考题目,题目要求我们在给定的值的范围内,进行一定数量的位运算,找到使最后运算得到的值最大的初始值。既然要运算值最大,那么就要思考在二进制中怎样......
  • 今日总结
    今天配置pom.xml<repositories><repository><id>aliyunmaven</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository><repository>......
  • html的总结
    1.2.2渲染引擎(了解)渲染引擎(浏览器内核):浏览器中专门对代码进行解析渲染的部分浏览器出品的公司不同,内在的揎染引也是不同的:浏览器内核不一样,渲染方式就会不同怎么做到统一的打开页面解决就是要有一个相同的web标准1.3.2Web标准的构成Web标准中分成三个构成:构成语言说明......