Android实现登录注册页面(下)

前面我们已经完成了登录注册页面的布局,下面我们实现验证登录和记住密码的功能。

我们这里还没用到数据库,所以我们的验证的账号密码,是写死的。

首先进入登录页面,可以从这里跳转到注册页面,注册成功后,账号密码的输入框会自动获取刚刚注册的账号密码,无需再次输入。登录成功后,页面跳转到首页,首页获取并显示刚刚注册的账号,点击首页的退出登录,则返回到登录页面。

接下来,先写首页activity_main.xml页面的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="欢迎!"
        android:textSize="40sp"
        android:layout_marginTop="30dp"
        android:layout_gravity="center_horizontal"></TextView>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="退出登录"
        android:textSize="25sp"
        android:layout_margin="20dp"
        style="@style/MyBtnStyle"
        android:onClick="loginOut"></Button>
</LinearLayout>

效果如图:

首页的MainActivity.java代码如下:

public class MainActivity extends AppCompatActivity {
 
    private TextView tvContent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().setTitle("首页");
 
        tvContent=findViewById(R.id.tv_content);
        Intent intent=getIntent();
        String account=intent.getStringExtra("account");
        tvContent.setText("欢迎你:"+account);
    }
 
    //退出登录按钮点击事件
    public void loginOut(View view) {
        Intent intent=new Intent(this,LoginActivity.class);
        startActivity(intent);
        this.finish();
    }
}

这里的代码是包含验证登录的内容和记住密码的内容。

首先是LoginActivity.java 页面:

public class LoginActivity extends AppCompatActivity {
 
    public static final int REQUEST_CODE_REGISTER = 1;
    private static final String TAG="tag";
    private Button btnLogin;
    private EditText etAccount,etPassword;
    private CheckBox cbRemember;
    private String userName="a";
    private String pass="123";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        getSupportActionBar().setTitle("登录");
 
        initView();
        initData();
 
 
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //判断账号密码是否符合要求
                String account=etAccount.getText().toString();
                String password=etPassword.getText().toString();
                if (TextUtils.isEmpty(userName)){
                    Toast.makeText(LoginActivity.this,"还没有注册账号!",Toast.LENGTH_LONG).show();
                    return;
                }
                if (TextUtils.equals(account,userName)){
                    if (TextUtils.equals(password,pass)){
                        Toast.makeText(LoginActivity.this,"恭喜你,登录成功!",Toast.LENGTH_LONG).show();
                        if (cbRemember.isChecked()){
                            SharedPreferences spf=getSharedPreferences("spfRecorid",MODE_PRIVATE);
                            SharedPreferences.Editor edit=spf.edit();
                            edit.putString("account",account);
                            edit.putString("password",password);
                            edit.putBoolean("isRemember",true);
                            edit.apply();
                        }else {
                            SharedPreferences spf=getSharedPreferences("spfRecorid",MODE_PRIVATE);
                            SharedPreferences.Editor edit=spf.edit();
                            edit.putBoolean("isRemember",false);
                            edit.apply();
                        }
 
                        //实现跳转
                        Intent intent=new Intent(LoginActivity.this,MainActivity.class);
                        //传递用户名
                        intent.putExtra("account",account);
                        startActivity(intent);
                        //接收自己
                        LoginActivity.this.finish();
 
                    }else {
                        Toast.makeText(LoginActivity.this,"密码错误!",Toast.LENGTH_LONG).show();
                    }
                }else {
                    Toast.makeText(LoginActivity.this,"用户名错误",Toast.LENGTH_LONG).show();
                }
 
            }
        });
    }
 
    //记住密码(取出数据)
    private void initData() {
        SharedPreferences spf=getSharedPreferences("spfRecorid",MODE_PRIVATE);
        boolean isRemember=spf.getBoolean("isRemember",false);
        String account=spf.getString("account","");
        String password=spf.getString("password","");
        //更新用户名密码(注册的用户名密码)
        userName=account;
        pass=password;
 
        if (isRemember){
            etAccount.setText(account);
            etPassword.setText(password);
            cbRemember.setChecked(true);
        }
 
    }
 
    //初始化
    private void initView(){
        btnLogin=findViewById(R.id.btn_login);
        etAccount=findViewById(R.id.et_account);
        etPassword=findViewById(R.id.et_password);
        cbRemember=findViewById(R.id.cb_remember);
    }
 
    //还没有账号(跳转到注册)
    public void toRegister(View view) {
        Intent intent=new Intent(this,RegisterActivity.class);
        
        //startActivity(intent);
        startActivityForResult(intent,REQUEST_CODE_REGISTER);
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==REQUEST_CODE_REGISTER&&resultCode==RegisterActivity.RESULT_CODE_REGISTER&&data!=null){
            Bundle extras=data.getExtras();
            //获取用户密码
            String account=extras.getString("account","");
            String password=extras.getString("password","");
            etAccount.setText(account);
            etPassword.setText(password);
 
            //更新用户名密码(注册的用户名密码)
            userName=account;
            pass=password;
        }
    }
}

接下来是RegisterActivity.java 页面的内容

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
 
    public static final int RESULT_CODE_REGISTER = 0;
    private Button btnRegister;
    private EditText etAccount,etPass,etPassConfirm;
    private CheckBox cbAgree;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        getSupportActionBar().setTitle("注册");
 
        etAccount=findViewById(R.id.et_account);
        etPass=findViewById(R.id.et_password);
        etPassConfirm=findViewById(R.id.et_password_Confirm);
        cbAgree=findViewById(R.id.cb_agree);
        btnRegister=findViewById(R.id.btn_register);
 
        btnRegister.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        String name=etAccount.getText().toString();
        String pass=etPass.getText().toString();
        String PassConfirm=etPassConfirm.getText().toString();
 
        if (TextUtils.isEmpty(name)){
            Toast.makeText(RegisterActivity.this,"用户名不能为空!",Toast.LENGTH_LONG).show();
            return;
        }
        if (TextUtils.isEmpty(pass)){
            Toast.makeText(RegisterActivity.this,"密码不能为空!",Toast.LENGTH_LONG).show();
            return;
        }
        if (!TextUtils.equals(pass,PassConfirm)){
            Toast.makeText(RegisterActivity.this,"密码不一致!",Toast.LENGTH_LONG).show();
            return;
        }
        if (!cbAgree.isChecked()){
            Toast.makeText(RegisterActivity.this,"请同意用户协议!",Toast.LENGTH_LONG).show();
            return;
        }
        //存储注册的用户名和密码
        SharedPreferences spf=getSharedPreferences("spfRecorid",MODE_PRIVATE);
        SharedPreferences.Editor edit = spf.edit();
        edit.putString("account",name);
        edit.putString("password",pass);
        //注册成功后,回到登录页面,数据回传
        Intent intent=new Intent();
        Bundle bundle=new Bundle();
        bundle.putString("account",name);
        bundle.putString("password",pass);
        intent.putExtras(bundle);
        setResult(RESULT_CODE_REGISTER,intent);
        Toast.makeText(RegisterActivity.this,"注册成功!",Toast.LENGTH_LONG).show();
        this.finish();
    }
}

到这里,验证登录和记住密码的功能就完成啦!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android客户端实现注册、登录详解(2)

    上文中介绍了安卓客户端与服务器交互,实现注册功能,Android客户端实现注册/登录详解(一) 本文将继续介绍App与服务器的交互实现登录和自动登录的功能,上文说到请求服务器进行注册主要是通过POST请求携带参数实现,起作用的主要代码: StringRequest request=new StringRequest(Method.POST, url, new Listener<String>() { //请求成功 @Override public void onResponse(String

  • Android设计登录界面、找回密码、注册功能

    本文实例为大家分享了Android 登录.找回密码.注册功能的实现代码,供大家参考,具体内容如下 1.数据库的设计 我在数据库中添加了两张表,一张表用来存储用户信息,诸如用户名,密码,手机号等,可任意添加.另一张表用来存储上一个登录用户的账户信息,我是为了方便才另外创建了一张表去存储,而且这张表我设计了它只能存储一条信息,每次的存储都是对上一条记录的覆盖.事实上,我尝试过在存储用户信息的那张表内添加一个标识,用来标记上一次登录的是哪一个帐号,但是这样做的话,每次改变标识都需要遍历整张表,十分的麻

  • Android基于Sqlite实现注册和登录功能

    Android中基于Sqlite实现注册和登录功能,供大家参考,具体内容如下 前言 写这篇博客主要是为了巩固一下学的Sqlite知识以及梳理一下这个项目的逻辑 实现逻辑 项目的图片结构图如下 代码 user class public class User {     private String name;    //用户名     private String password;     //密码     public User(String name, String password) {

  • Android实现登录界面的注册功能

    本文实例为大家分享了Android登录界面的注册实现代码,供大家参考,具体内容如下 注册一个登录界面在控制台将输入的信息文本选框展示出来 xml界面设计(前面已发) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="h

  • Android实现登录注册功能

    本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下 运行环境 Android Studio 总体效果图 一. 设计注册页面的布局 二.完成注册功能 (1) 添加User类 (2)添加 UserManager类 管理用户信息 package com.example.videoplayer; import android.hardware.usb.UsbRequest; import java.io.BufferedReader; import java.io.F

  • Android实现登录注册页面(上)

    简单的Android开发登录注册,这个是没有连数据库的. 首先,新建项目,新建一个登录页面LoginActivity和注册页面RegisterActivity. 下面是登录页面的代码:activity_login.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

  • Android登录注册功能 数据库SQLite验证

    本文实例为大家分享了Android登录注册功能的具体代码,供大家参考,具体内容如下 展示效果 代码区 MainActivity(登录方法) public class MainActivity extends AppCompatActivity { @BindView(R.id.editText) EditText editText; @BindView(R.id.editText2) EditText editText2; @BindView(R.id.button) Button button

  • Android实现注册登录界面的实例代码

    本文讲述了在linux命令下导出导入.sql文件的方法.分享给大家供大家参考,具体如下: AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="online.geekgalaxy.layoutlearn

  • Android客户端实现注册、登录详解(1)

    我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个Android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这里我们仅讨论客户端如何请求服务器进行注册,而服务器在收到客户端请求后进行的一系列操作并不在本文所述范围内,有兴趣大家可以参考 请求服务器 客户端在进行用户信息的注册和登录时一般使用post请求(携带参数)去服务器.以volley框架请求服务器为例,真正与服务器进行交互的就是如下代码: StringRequ

  • Android Studio连接SQLite数据库的登录注册实现

    1.先看一下项目目录: 2.新建一个AS项目,创建如上图所示的目录结构,然后添加内容: (1)修改添加布局文件: activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

随机推荐