admin管理员组

文章数量:1559067

一、注册页面效果图

 注册的页面布局;

    xmlns:app="http://schemas.android/apk/res-auto"
    xmlns:tools="http://schemas.android/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();
//提交修改 editormit();
                editormit();
            }
        }

二、登录页面效果图

 登录的页面布局



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

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

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

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

登录的实现(.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);
//提交修改
        editormit();
    }
    /**
     * 注册成功的数据返回至此
     * @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());
            }
        }
    }
}

三、忘记密码页面效果图

 忘记密码的页面布局




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

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

    //《-----------------注册的手机号设置---------------------》
    
        
        
        >
    //《-----------------注册的同意协议---------------------》
    
        
    
    //《-----------------注册的按钮---------------------》
    
        

忘记密码的实现(.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);
//提交修改 editormit();
        editormit();
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文标签: 简单