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