Android登录功能

登录功能的loginActivity文件

  1 package com.example.justloginregistertest;
  2 /**
  3  * 纯粹实现登录注册功能,其它功能都被注释掉了
  4  * 起作用的代码(连带着packag、import算上) 共 73 行
  5  * 不多吧?
  6  */
  7 
  8 import android.content.Intent;
  9 import android.os.Bundle;
 10 import android.text.TextUtils;
 11 import android.view.View;
 12 import android.widget.Button;
 13 import android.widget.EditText;
 14 import android.widget.LinearLayout;
 15 import android.widget.RelativeLayout;
 16 import android.widget.TextView;
 17 import android.widget.Toast;
 18 
 19 import androidx.appcompat.app.AppCompatActivity;
 20 
 21 import java.util.ArrayList;
 22 /**
 23  * Created by littlecurl 2018/6/24
 24  */
 25 
 26 /**
 27  * 此类 implements View.OnClickListener 之后,
 28  * 就可以把onClick事件写到onCreate()方法之外
 29  * 这样,onCreate()方法中的代码就不会显得很冗余
 30  */
 31 public class loginActivity extends AppCompatActivity implements View.OnClickListener {
 32     /**
 33      * 声明自己写的 DBOpenHelper 对象
 34      * DBOpenHelper(extends SQLiteOpenHelper) 主要用来
 35      * 创建数据表
 36      * 然后再进行数据表的增、删、改、查操作
 37      */
 38     private DBOpenHelper mDBOpenHelper;
 39     private TextView mTvLoginactivityRegister;
 40     private RelativeLayout mRlLoginactivityTop;
 41     private EditText mEtLoginactivityUsername;
 42     private EditText mEtLoginactivityPassword;
 43     private LinearLayout mLlLoginactivityTwo;
 44     private Button mBtLoginactivityLogin;
 45 
 46     /**
 47      * 创建 Activity 时先来重写 onCreate() 方法
 48      * 保存实例状态
 49      * super.onCreate(savedInstanceState);
 50      * 设置视图内容的配置文件
 51      * setContentView(R.layout.activity_login);
 52      * 上面这行代码真正实现了把视图层 View 也就是 layout 的内容放到 Activity 中进行显示
 53      * 初始化视图中的控件对象 initView()
 54      * 实例化 DBOpenHelper,待会进行登录验证的时候要用来进行数据查询
 55      * mDBOpenHelper = new DBOpenHelper(this);
 56      */
 57     @Override
 58     protected void onCreate(Bundle savedInstanceState) {
 59         super.onCreate(savedInstanceState);
 60         setContentView(R.layout.activity_login);
 61 
 62         initView();
 63 
 64         mDBOpenHelper = new DBOpenHelper(this);
 65     }
 66 
 67     /**
 68      * onCreae()中大的布局已经摆放好了,接下来就该把layout里的东西
 69      * 声明、实例化对象然后有行为的赋予其行为
 70      * 这样就可以把视图层View也就是layout 与 控制层 Java 结合起来了
 71      */
 72     private void initView() {
 73         // 初始化控件
 74         mBtLoginactivityLogin = findViewById(R.id.bt_loginactivity_login);
 75         mTvLoginactivityRegister = findViewById(R.id.tv_loginactivity_register);
 76         mRlLoginactivityTop = findViewById(R.id.rl_loginactivity_top);
 77         mEtLoginactivityUsername = findViewById(R.id.et_loginactivity_username);
 78         mEtLoginactivityPassword = findViewById(R.id.et_loginactivity_password);
 79         mLlLoginactivityTwo = findViewById(R.id.ll_loginactivity_two);
 80 
 81         // 设置点击事件监听器
 82         mBtLoginactivityLogin.setOnClickListener(this);
 83         mTvLoginactivityRegister.setOnClickListener(this);
 84     }
 85 
 86     public void onClick(View view) {
 87         switch (view.getId()) {
 88             // 跳转到注册界面
 89             case R.id.tv_loginactivity_register:
 90                 startActivity(new Intent(this, RegisterActivity.class));
 91                 finish();
 92                 break;
 93             /**
 94              * 登录验证:
 95              *
 96              * 从EditText的对象上获取文本编辑框输入的数据,并把左右两边的空格去掉
 97              *  String name = mEtLoginactivityUsername.getText().toString().trim();
 98              *  String password = mEtLoginactivityPassword.getText().toString().trim();
 99              *  进行匹配验证,先判断一下用户名密码是否为空,
100              *  if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password))
101              *  再进而for循环判断是否与数据库中的数据相匹配
102              *  if (name.equals(user.getName()) && password.equals(user.getPassword()))
103              *  一旦匹配,立即将match = true;break;
104              *  否则 一直匹配到结束 match = false;
105              *
106              *  登录成功之后,进行页面跳转:
107              *
108              *  Intent intent = new Intent(this, MainActivity.class);
109              *  startActivity(intent);
110              *  finish();//销毁此Activity
111              */
112             case R.id.bt_loginactivity_login:
113                 String name = mEtLoginactivityUsername.getText().toString().trim();
114                 String password = mEtLoginactivityPassword.getText().toString().trim();
115                 if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) {
116                     ArrayList<User> data = mDBOpenHelper.getAllData();
117                     boolean match = false;
118                     for (int i = 0; i < data.size(); i++) {
119                         User user = data.get(i);
120                         if (name.equals(user.getName()) && password.equals(user.getPassword())) {
121                             match = true;
122                             break;
123                         } else {
124                             match = false;
125                         }
126                     }
127                     if (match) {
128                         Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
129                         Intent intent = new Intent(this, MainActivity.class);
130                         startActivity(intent);
131                         finish();//销毁此Activity
132                     } else {
133                         Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show();
134                     }
135                 } else {
136                     Toast.makeText(this, "请输入你的用户名或密码", Toast.LENGTH_SHORT).show();
137                 }
138                 break;
139         }
140     }
141 }
原文地址:https://www.cnblogs.com/znjy/p/14891889.html