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(); } }
本文标签: 简单
j9九游会老哥俱乐部交流区的版权声明:本文标题:利用android studio制作简单的qq的注册、登录、忘记密码的页面 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727386012a1112354.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。