利用android studio制作简单的QQ的注册、登录、忘记密码的页面

一、注册页面效果图

利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第1张图片利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第2张图片

 注册的页面布局;

    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"
    android:background="@drawable/k"
    tools:context=".MainActivity">



  //《-----------------欢迎标题---------------------》
    

        

        >







    //《-----------------注册的昵称设置---------------------》
    
        
        
        



    //《-----------------注册的密码设置---------------------》
    
        
        
        




    //《-----------------注册的手机号设置---------------------》
    
        
        
        >


    //《-----------------注册的同意协议---------------------》
    
        
    



    //《-----------------注册的按钮---------------------》
    

        

注册的实现(.java代码)

package com.example.qq;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;

import android.content.SharedPreferences;

import android.content.pm.ActivityInfo;

import android.graphics.Color;

import android.os.Bundle;

//import android.support.v7.app.AppCompatActivity;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RelativeLayout;

import android.widget.TextView;

import android.widget.Toast;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
//import cn.edu.gdmec.android.androidstudiodemo.utils.MD5Utils;
import android.os.Bundle;

public class RegisterActivity extends AppCompatActivity {

    private Button btn_register;//注册按钮



//昵称,密码,手机号的控件

    private EditText et_user_name,et_psw,et_user_telep;

//用户名,密码,再次输入的密码的控件的获取值

    private String userName,psw,telep,xieyi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

//设置页面布局 ,注册界面

        setContentView(R.layout.activity_register);

//设置此界面为竖屏

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        init();

    }

    private void init() {
//从activity_register.xml 页面中获取对应的UI控件

        btn_register=findViewById(R.id.register);

        et_user_name=findViewById(R.id.name);

        et_psw=findViewById(R.id.password);

        et_user_telep=findViewById(R.id.tele);




//注册按钮

        btn_register.setOnClickListener(new View.OnClickListener() {

 @Override
        public void onClick(View v) {

//获取输入在相应控件中的字符串

        getEditString();

//判断输入框内容

       if (TextUtils.isEmpty(userName)) {

          Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();

             return;

              } else if (TextUtils.isEmpty(psw)) {

               Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

                return;

                  } else if (TextUtils.isEmpty(telep)) {

                    Toast.makeText(RegisterActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();

                     return;

                       }

/**
 *从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名

 */

                    else if (isExistUserName(userName)) {

                    Toast.makeText(RegisterActivity.this, "此账户名已经存在", Toast.LENGTH_SHORT).show();

                    return;

               } else {

                 Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();

//把账号、密码和账号标识保存到sp里面

/**
 * 保存账号和密码到SharedPreferences中

 */

      saveRegisterInfo(userName, psw);

//注册成功后把账号传递到LoginActivity.java中

// 返回值到loginActivity显示

              Intent data = new Intent();

               data.putExtra("userName", userName);

                 setResult(RESULT_OK, data);

//RESULT_OK为Activity系统常量,状态码为-1,

// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data
          RegisterActivity.this.finish(); } }

        });

    }
            /**
             * 获取控件中的字符串
             */

            private void getEditString() {

                userName = et_user_name.getText().toString().trim();

                psw = et_psw.getText().toString().trim();

                telep = et_user_telep.getText().toString().trim();

            }

            /**
             * 从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名
             */

            private boolean isExistUserName(String userName) {

                boolean has_userName = false;

//mode_private SharedPreferences sp = getSharedPreferences( );

// "loginInfo", MODE_PRIVATE

                SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);

//获取密码

                String spPsw = sp.getString(userName, "");//传入用户名获取密码

//如果密码不为空则确实保存过这个用户名

                if (!TextUtils.isEmpty(spPsw)) {

                    has_userName = true;

                }

                return has_userName;

            }
    /**
             * 保存账号和密码到SharedPreferences中SharedPreferences
             */

            private void saveRegisterInfo(String userName, String psw) {


//loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );

                SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);

//获取编辑器, SharedPreferences.Editor editor -> sp.edit();

                SharedPreferences.Editor editor = sp.edit();

//提交修改 editor.commit();

                editor.commit();

            }
        }

二、登录页面效果图

利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第3张图片利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第4张图片

 登录的页面布局



    //《-----------------头像设计---------------------》
    

        

        
    




    //《-----------------账号设计---------------------》
    
        //文本框
        
        //编辑文本
        
    





    //《-----------------密码设计---------------------》
    
          //文本框
        
            //编辑文本
        
    




    //《-----------------登录按钮设计---------------------》
    

登录的实现(.java代码)

package com.example.qq;
import android.content.Intent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;

import android.content.pm.ActivityInfo;

import android.os.Bundle;

//import android.support.v7.app.AppCompatActivity;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

//import cn.edu.gdmec.android.androidstudiodemo.utils.MD5Utils;





public class MainActivity extends AppCompatActivity {

    //显示的注册,找回密码
    private TextView tv_register,tv_find_psw;
    //登录按钮
    private Button btn_login;
    //获取的用户名,密码
    private String userName,psw;
    //账号,密码的编辑框
    private EditText et_user_name,et_psw;
    @Override





    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//设置此界面为竖屏

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        init();

    }

//获取界面控件

    private void init() {


//从activity_main.xml中获取的

        tv_register = findViewById(R.id.b1);//注册的ID

        tv_find_psw = findViewById(R.id.b2);//找回密码的ID

        btn_login = findViewById(R.id.btn_login);//登录按钮

        et_user_name = findViewById(R.id.et_ID);//账号

        et_psw = findViewById(R.id.et_password);//密码




//立即注册控件的点击事件

        tv_register.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

//为了跳转到注册界面,并实现注册功能

                Intent intent=new Intent(MainActivity.this,RegisterActivity.class);

                startActivityForResult(intent, 1);

            }

        });

//找回密码控件的点击事件

        tv_find_psw.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

//跳转到找回密码界面(此页面暂未创建)

                Intent intent=new Intent(MainActivity.this,LostfoundActivity.class);

                startActivityForResult(intent, 1);

            }

        });

//登录按钮的点击事件

        btn_login.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

//开始登录,获取用户名和密码 getText().toString().trim();

                userName=et_user_name.getText().toString().trim();

                psw=et_psw.getText().toString().trim();

//对当前用户输入的密码进行MD5加密再进行比对判断, MD5Utils.md5( ); psw 进行加密判断是否一致

  //              String md5Psw= MD5Utils.md5(psw);

// md5Psw ; spPsw 为 根据从SharedPreferences中用户名读取密码

// 定义方法 readPsw为了读取用户名,得到密码

   //             spPsw=readPsw(userName);

// TextUtils.isEmpty

                if(TextUtils.isEmpty(userName)){

                    Toast.makeText(MainActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();

                    return;

                }else if(TextUtils.isEmpty(psw)) {

                    Toast.makeText(MainActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

                    return;
                }

                else{  //此用户名不存在

                    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

                }

            }

        });

    }

    /**

     *从SharedPreferences中根据用户名读取密码

     */

    private String readPsw(String userName){

//getSharedPreferences("loginInfo",MODE_PRIVATE);

//"loginInfo",mode_private; MODE_PRIVATE表示可以继续写入

        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

//sp.getString() userName, "";

        return sp.getString(userName , "");

    }

    /**

     *保存登录状态和登录用户名到SharedPreferences中

     */

    private void saveLoginStatus(boolean status,String userName){

//saveLoginStatus(true, userName);

//loginInfo表示文件名 SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

//获取编辑器

        SharedPreferences.Editor editor=sp.edit();

//存入boolean类型的登录状态

        editor.putBoolean("isLogin", status);

//存入登录状态时的用户名

        editor.putString("loginUserName", userName);

//提交修改

        editor.commit();

    }

    /**

     * 注册成功的数据返回至此

     * @param requestCode 请求码

     * @param resultCode 结果码

     * @param data 数据

     */

    @Override

//显示数据, onActivityResult

//startActivityForResult(intent, 1); 从注册界面中获取数据

//int requestCode , int resultCode , Intent data

// LoginActivity -> startActivityForResult -> onActivityResult();

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

//super.onActivityResult(requestCode, resultCode, data);

        super.onActivityResult(requestCode, resultCode, data);

        if(data!=null){

//是获取注册界面回传过来的用户名

// getExtra().getString("***");

            String userName=data.getStringExtra("userName");

            if(!TextUtils.isEmpty(userName)){

//设置用户名到 et_user_name 控件

                et_user_name.setText(userName);

//et_user_name控件的setSelection()方法来设置光标位置

                et_user_name.setSelection(userName.length());

            }

        }

    }

}

三、忘记密码页面效果图

利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第5张图片利用android studio制作简单的QQ的注册、登录、忘记密码的页面_第6张图片

 忘记密码的页面布局








    //《-----------------欢迎标题---------------------》
    

        

        >







    //《-----------------注册的昵称设置---------------------》
    
        
        
        



    //《-----------------注册的密码设置---------------------》
    
        
        
        




    //《-----------------注册的手机号设置---------------------》
    
        
        
        >



    //《-----------------注册的同意协议---------------------》
    
        
    



    //《-----------------注册的按钮---------------------》
    

        

忘记密码的实现(.java)

package com.example.qq;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;

import android.content.SharedPreferences;

import android.content.pm.ActivityInfo;

import android.graphics.Color;

import android.os.Bundle;

//import android.support.v7.app.AppCompatActivity;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RelativeLayout;

import android.widget.TextView;

import android.widget.Toast;

//import cn.edu.gdmec.android.androidstudiodemo.utils.MD5Utils;


public class LostfoundActivity extends AppCompatActivity {

    //重置密码按钮
    private Button btn_register;

//用户名,密码,再次输入的密码,电话,验证码的控件

    private EditText et_user_name,et_psw,et_psw_again,et_user_tele,et_user_code;

//用户名,密码,再次输入的密码,电话,验证码的控件的获取值

    private String userName,psw,pswAgain,userTele,userCode;

//标题布局

    private RelativeLayout rl_title_bar;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置页面布局 ,注册界面
        setContentView(R.layout.activity_lostfound);

        //设置此界面为竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        init(); }


    private void init() {

//从activity_lostfound.xml 页面布局中获取对应的UI控件

        et_user_name=findViewById(R.id.username);
        et_psw_again=findViewById(R.id.password2);
        et_user_tele=findViewById(R.id.tele);
        et_psw=findViewById(R.id.password1);
        et_user_code=findViewById(R.id.Code);
        btn_register=findViewById(R.id.bt);

        //重置按钮

        btn_register.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

//获取输入在相应控件中的字符串

                getEditString();

//判断输入框内容

                if(TextUtils.isEmpty(userName)){

                    Toast.makeText(LostfoundActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();

                    return;

                } else if(TextUtils.isEmpty(psw)){

                    Toast.makeText(LostfoundActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

                    return;

                }else if(TextUtils.isEmpty(pswAgain)){

                    Toast.makeText(LostfoundActivity.this, "请再次输入密码", Toast.LENGTH_SHORT).show();

                    return;

                }
                //验证码,手机号验证空有问题
                //else if(TextUtils.isEmpty(userTele)){

                    //Toast.makeText(LostfoundActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();

                    //return;}
                //else if(TextUtils.isEmpty(userCode)){

                   // Toast.makeText(LostfoundActivity.this, "请输入验证码", Toast.LENGTH_SHORT).show();

                    //return;

                //}
                else if(!psw.equals(pswAgain)){

                    Toast.makeText(LostfoundActivity.this, "输入两次的密码不一样", Toast.LENGTH_SHORT).show();

                    return;


                } else if(isExistUserName(userName)){

                    Toast.makeText(LostfoundActivity.this, "此账户名已经存在", Toast.LENGTH_SHORT).show();

                    return;

                }else{

                    Toast.makeText(LostfoundActivity.this, "密码重置成功", Toast.LENGTH_SHORT).show();

//把账号、密码和账号标识保存到sp里面

/**

 * 保存账号和密码到SharedPreferences中

 */

                    saveRegisterInfo(userName, psw);

//注册成功后把账号传递到registerActivity.java中

// 返回值到mainActivity显示

                    Intent data = new Intent();

                    data.putExtra("userName", userName);

                    setResult(RESULT_OK, data);

//RESULT_OK为Activity系统常量,状态码为-1,

// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值

                    LostfoundActivity.this.finish();

                }

            }

        });

    }

    /**

     * 获取控件中的字符串

     */

    private void getEditString(){

        userName=et_user_name.getText().toString().trim();

        psw=et_psw.getText().toString().trim();

        pswAgain=et_psw_again.getText().toString().trim();

    }

    /**

     * 从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名

     */

    private boolean isExistUserName(String userName){

        boolean has_userName=false;

//mode_private SharedPreferences sp = getSharedPreferences( );

// "loginInfo", MODE_PRIVATE

        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

//获取密码

        String spPsw=sp.getString(userName, "");//传入用户名获取密码

//如果密码不为空则确实保存过这个用户名

        if(!TextUtils.isEmpty(spPsw)) {

            has_userName=true;

        }

        return has_userName;

    }

    /**

     * 保存账号和密码到SharedPreferences中SharedPreferences

     */

    private void saveRegisterInfo(String userName,String psw){

       // String md5Psw = MD5Utils.md5(psw);//把密码用MD5加密

//loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );

        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);

//获取编辑器, SharedPreferences.Editor editor -> sp.edit();

        SharedPreferences.Editor editor=sp.edit();

//以用户名为key,密码为value保存在SharedPreferences中

//key,value,如键值对,editor.putString(用户名,密码);

     //   editor.putString(userName, md5Psw);

//提交修改 editor.commit();

        editor.commit();

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(android,html5,html,java,javascript)