php 安卓注册,做一个Android应用的注册与登录功能
在android的应用中越来越多的包含了网络互动功能,这就带来了注册,登陆账号功能。本文完整的介绍对话框的方式实现用户登陆功能。
登陆效果: 应用程序判断当前用户还未登陆,弹出登陆对话框,用户输入账号和密码信息后,传到服务器验证,验证成功后,现实Toast 成功信息,并转到其他界面。
注册效果:用户如没有账号,则点击登陆对话框的 "没有账号,快速注册账号", 弹出注册界面,用户输入注册信息,点击注册按钮,注册成功后,弹出toast信息"注册成功",完成注册后,转到其他功能界面。
整个功能大体上分两块:登陆对话框:输入登陆信息,实现登陆功能,转到注册界面。注册对话框:输入注册信息,实现注册功能。
对话框界面布局xml文件:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/txt_loginerror"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textColor="#ff0000"
android:text="输入的账号和密码不正确"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible"
/>
android:id="@+id/username"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:text="账号"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:id="@+id/txt_username"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:autoText="false"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:id="@+id/password"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="密码"
android:gravity="left"
/>
android:id="@+id/txt_password"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:autoText="false"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:id="@+id/txt_toregister"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textColor="#2200C1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="没有账号?快速注册"
android:gravity="left"
/>
后台业务逻辑:
/*
* 创建用户登陆的对话框
* 登陆界面包含两个按钮
* 1按钮为登陆
* 2按钮为不登陆试玩
* */
private void CreateLoginAlert()
{
AlertDialog.Builder ad =new AlertDialog.Builder(this);
ad.setTitle("账号登陆");
ad.setView(ViewUtility.GetView(this,R.layout.sub_logindialog));
adi= ad.create();
/*
*/
adi.setButton("登陆", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
EditText password= (EditText)adi.findViewById(R.id.txt_password);
EditText account =(EditText)adi.findViewById(R.id.txt_username);
PassWord=password.getText().toString();
Account=account.getText().toString();
//生成登陆对话框
m_Dialog=ProgressDialog.show(Main.this, "请等待...", "正在为你登陆...",true);
mRedrawHandler.sleep(100);
}
});
adi.setButton2("试 玩", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
}
});
adi.show();
//设置注册点击事件
TextView register=(TextView)adi.findViewById(R.id.txt_toregister);
register.setOnClickListener(new TextView.OnClickListener()
{
public void onClick(View v){
//创建注册对话框
CreateRegisterAlert();
adi.dismiss();
}
});
}
/*
*定时线程做验证用
* */
private RefreshHandler mRedrawHandler = new RefreshHandler();
class RefreshHandler extends Handler {
@Override
public void handleMessage(Message msg) {
try{
//调用网络接口,实现登陆指令
Boolean flags= UserDataServiceHelper.Login(Account, PassWord);
if(flags)
{
//保存登陆信息
UserDataWriteHelper uw=new UserDataWriteHelper(Main.this);
uw.SaveUserInfoInDB("xuwenbing", Account);
//提示登陆成功
Toast.makeText(Main.this, "登陆成功", Toast.LENGTH_SHORT).show();
//转到主题页面
ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
}else
{
//失败 显示错误信息
Toast.makeText(Main.this, "登陆失败", Toast.LENGTH_SHORT).show();
adi.show();
adi.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally{
m_Dialog.dismiss();
}
}
public void sleep(long delayMillis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
对话框界面布局xml文件:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
>
android:id="@+id/txt_loginerror"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textColor="#ff0000"
android:text="输入的账号和密码不正确"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/username"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:text="账号"
android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:id="@+id/txt_username"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:autoText="false"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/password"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="密码"
android:gravity="left"
/>
android:id="@+id/txt_password"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:autoText="false"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/nicename"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="昵称"
android:gravity="left"
/>
android:id="@+id/txt_nicename"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:autoText="false"
android:capitalize="none"
android:gravity="fill_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
后台业务逻辑:
/*创建注册对话框*/
private void CreateRegisterAlert()
{
//registerdialog
AlertDialog.Builder ad =new AlertDialog.Builder(this);
ad.setTitle("注册账号");
ad.setView(ViewUtility.GetView(this,R.layout.sub_registerdialog));
registerdialog= ad.create();
registerdialog.setButton("注册", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
EditText password= (EditText)registerdialog.findViewById(R.id.txt_password);
EditText account =(EditText)registerdialog.findViewById(R.id.txt_username);
EditText nicename =(EditText)registerdialog.findViewById(R.id.txt_nicename);
PassWord=password.getText().toString();
Account=account.getText().toString();
NiceName=nicename.getText().toString();
//生成注册对话框
m_Dialog=ProgressDialog.show(Main.this, "请等待...", "正在为你注册...",true);
mRegsiterHandler.sleep(100);
}
});
registerdialog.setButton2("试 玩", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
}
});
registerdialog.show();
}
/*
*定时注册程序
* */
private RegsiterHandler mRegsiterHandler = new RegsiterHandler();
class RegsiterHandler extends Handler {
@Override
public void handleMessage(Message msg) {
try{
//调用网络接口,实现注册指令
Boolean flags= UserDataServiceHelper.Register(Account, PassWord,NiceName);
if(flags)
{
//保存注册信息
UserDataWriteHelper uw=new UserDataWriteHelper(Main.this);
uw.SaveUserInfoInDB("xuwenbing", Account);
//提示注册成功
Toast.makeText(Main.this, "注册成功", Toast.LENGTH_SHORT).show();
//转到主题页面
ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
}else
{
//失败 显示错误信息
Toast.makeText(Main.this, "注册失败", Toast.LENGTH_SHORT).show();
registerdialog.show();
registerdialog.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally{
m_Dialog.dismiss();
}
}
public void sleep(long delayMillis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
两个网络接口功能:
//调用网络接口,实现登陆指令
Boolean flags= UserDataServiceHelper.Login(Account, PassWord);
//调用网络接口,实现注册指令
Boolean flags= UserDataServiceHelper.Register(Account, PassWord,NiceName);
php 安卓注册,做一个Android应用的注册与登录功能相关推荐
- 网站是服务器备案还是域名备案,做一个网站域名先注册还是备案
做一个网站 现在网站域名备案,都采用电子化备案,用户无需再到核验点拍摄幕布照片,只要用手机拍拍照填填表,最快几分钟在线完成提交,期间不涉及任何费用. 以 1.进入西部数码 2.网站备案分为首次备案和已 ...
- java mysql点赞功能_用Java做一个类似于微博QQ空间点赞的功能-Fun言
点赞是一个互动性很强的功能,网站加入点赞可以增强用户之间的亲密度,可以利用点赞排出受欢迎文章或者其他的列表,所以今天教大家如何做一个类似于微博.QQ空间的点赞功能 需求分析: 首先要明确这个功能是需要 ...
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- 用excel做一个家庭流水账本 增加一些统计功能 和大家分享
原文地址:http://blog.csdn.net/abbuggy/article/details/6639340 其实一直都是一个生活上比较粗线条的人,也一直都没有记账的习惯.工作五年了到底挣了多少 ...
- 关于unity连接MySQL数据库做一个简单的登陆注册系统
这段时间为了大作业,作为一个菜鸟研究了好久的Unity连接数据库,那就整理一下然后写下来当作记录吧. 首先,unity连接MySQL要先在Assets板上创建pluging文件夹再导入一些必要的dll ...
- 学校作业——配置ssm框架做一个简单的登陆注册
补一下blog 1.配置maven 指向阿里的镜像并且导入ssm框架所需的依赖 <mirror><id>nexus-aliyun</id><mirrorOf& ...
- 视频网站开发:JavaWeb做一个带自定义小表情的评论功能
前几天一直在做视频网站的评论功能,如今虽然说做的不是很好,但也算是挺满意的实现了.自我感觉做的最好的最有花样的就是为评论功能添加了小表情评论.见如下效果图 1.首先第一步,收集你想要使用的小表情,我因 ...
- 想在公众号上做一个测试软件,公众号测试新功能想要扭转乾坤?
近期,公众号测试了新功能,文章数据将直接以小字形式展示文章标题下方,根据图文排序的不同,显示的数据也不一样. 排在第一和第二的两篇文章底部可以看到文章的阅读量.点赞数.分享这三项数据,往下是阅读量.点 ...
- php做一个留言回复,php实现留言板功能的方法
本文主要介绍了php实现留言板功能的步骤方法解析.具有很好的参考价值.下面跟着小编一起来看下吧 简单的PHP留言板制作 做基础的留言板功能 需要三张表: 员工表,留言表,好友表 首先造一个登入页面: ...
最新文章
- 征服Perl——输入输出相关知识——里程碑M6
- 吉林省计算机二级证书用英语怎么说,吉林省全国高等学校计算机水平考试二级...
- createdroptargets_使用DUILIB建立项目
- 二级c语言上机程序填空,浙江省计算机二级c语言上机考试真题(二)程序填空
- 文件服务器+快照恢复,云服务器快照恢复
- 用servlet路径访问一个html,java web中servlet、jsp、html 互相访问的路径问题
- PC电脑端QQ如何适应电脑端大小
- php 时间段 mysql 存储_php – 在MySQL解决方案中存储日期范围
- python代码如何转java_将简单的Python代码转换为Java方法
- MachineLearning_LogisticRegression使用matlab编程遇到问题
- 项目Beta冲刺(3/7)(追光的人)(2019.5.25)
- html修改网站图标,分享内容,分享图标等
- 关于微信小程序新版头像昵称API 接口处理
- 【毕业设计】机器学习二维码识别检测系统 - python opencv 机器视觉
- 衡量子空间相似度和距离的主角 principal angles
- ECharts加载省份地图
- Lenovo E570 Windows 10 换Windows7
- 润滑建议大型开式齿轮中
- CSS知识点总结(一)
- 容器进程(QQExternal)
热门文章
- jQuery Mobile中链接(包含button和表单提交的链接)的data-*选项
- 基于Android的人事管理系统开发与设计源码(一)
- Latex除法a/b \frac{a}{b}
- mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
- [Alpha]Scrum Meeting#4
- python实现JWT
- 深入理解C++ new/delete, new []/delete[]动态内存管理
- 对SIL9022/9024的配置
- 读书笔记 - 《皇上走了》
- [转载] python隐式转换_Python | 数据类型的转换 显式转换 隐式转换