登录功能的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 }