zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    ASP 禁止页面被缓存
    关于学习编程的一点想法
    今天下午做的一个关于web前端性能/性能测试的Talk
    错误植入法与老祖宗的智慧
    关闭sitwithwhom.51.net
    让Pywinauto支持中文菜单
    勤学与好问
    LoadRunner 的 web_set_user 函数
    有奖调查——《软件性能测试过程详解与案例剖析》第二版内容调查
    论“响应时间”
  • 原文地址:https://www.cnblogs.com/znjy/p/14891889.html
Copyright © 2011-2022 走看看