在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. 网站是服务器备案还是域名备案,做一个网站域名先注册还是备案

    做一个网站 现在网站域名备案,都采用电子化备案,用户无需再到核验点拍摄幕布照片,只要用手机拍拍照填填表,最快几分钟在线完成提交,期间不涉及任何费用. 以 1.进入西部数码 2.网站备案分为首次备案和已 ...

  2. java mysql点赞功能_用Java做一个类似于微博QQ空间点赞的功能-Fun言

    点赞是一个互动性很强的功能,网站加入点赞可以增强用户之间的亲密度,可以利用点赞排出受欢迎文章或者其他的列表,所以今天教大家如何做一个类似于微博.QQ空间的点赞功能 需求分析: 首先要明确这个功能是需要 ...

  3. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  4. 用excel做一个家庭流水账本 增加一些统计功能 和大家分享

    原文地址:http://blog.csdn.net/abbuggy/article/details/6639340 其实一直都是一个生活上比较粗线条的人,也一直都没有记账的习惯.工作五年了到底挣了多少 ...

  5. 关于unity连接MySQL数据库做一个简单的登陆注册系统

    这段时间为了大作业,作为一个菜鸟研究了好久的Unity连接数据库,那就整理一下然后写下来当作记录吧. 首先,unity连接MySQL要先在Assets板上创建pluging文件夹再导入一些必要的dll ...

  6. 学校作业——配置ssm框架做一个简单的登陆注册

    补一下blog 1.配置maven 指向阿里的镜像并且导入ssm框架所需的依赖 <mirror><id>nexus-aliyun</id><mirrorOf& ...

  7. 视频网站开发:JavaWeb做一个带自定义小表情的评论功能

    前几天一直在做视频网站的评论功能,如今虽然说做的不是很好,但也算是挺满意的实现了.自我感觉做的最好的最有花样的就是为评论功能添加了小表情评论.见如下效果图 1.首先第一步,收集你想要使用的小表情,我因 ...

  8. 想在公众号上做一个测试软件,公众号测试新功能想要扭转乾坤?

    近期,公众号测试了新功能,文章数据将直接以小字形式展示文章标题下方,根据图文排序的不同,显示的数据也不一样. 排在第一和第二的两篇文章底部可以看到文章的阅读量.点赞数.分享这三项数据,往下是阅读量.点 ...

  9. php做一个留言回复,php实现留言板功能的方法

    本文主要介绍了php实现留言板功能的步骤方法解析.具有很好的参考价值.下面跟着小编一起来看下吧 简单的PHP留言板制作 做基础的留言板功能 需要三张表: 员工表,留言表,好友表 首先造一个登入页面: ...

最新文章

  1. 征服Perl——输入输出相关知识——里程碑M6
  2. 吉林省计算机二级证书用英语怎么说,吉林省全国高等学校计算机水平考试二级...
  3. createdroptargets_使用DUILIB建立项目
  4. 二级c语言上机程序填空,浙江省计算机二级c语言上机考试真题(二)程序填空
  5. 文件服务器+快照恢复,云服务器快照恢复
  6. 用servlet路径访问一个html,java web中servlet、jsp、html 互相访问的路径问题
  7. PC电脑端QQ如何适应电脑端大小
  8. php 时间段 mysql 存储_php – 在MySQL解决方案中存储日期范围
  9. python代码如何转java_将简单的Python代码转换为Java方法
  10. MachineLearning_LogisticRegression使用matlab编程遇到问题
  11. 项目Beta冲刺(3/7)(追光的人)(2019.5.25)
  12. html修改网站图标,分享内容,分享图标等
  13. 关于微信小程序新版头像昵称API 接口处理
  14. 【毕业设计】机器学习二维码识别检测系统 - python opencv 机器视觉
  15. 衡量子空间相似度和距离的主角 principal angles
  16. ECharts加载省份地图
  17. Lenovo E570 Windows 10 换Windows7
  18. 润滑建议大型开式齿轮中
  19. CSS知识点总结(一)
  20. 容器进程(QQExternal)

热门文章

  1. jQuery Mobile中链接(包含button和表单提交的链接)的data-*选项
  2. 基于Android的人事管理系统开发与设计源码(一)
  3. Latex除法a/b \frac{a}{b}
  4. mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
  5. [Alpha]Scrum Meeting#4
  6. python实现JWT
  7. 深入理解C++ new/delete, new []/delete[]动态内存管理
  8. 对SIL9022/9024的配置
  9. 读书笔记 - 《皇上走了》
  10. [转载] python隐式转换_Python | 数据类型的转换 显式转换 隐式转换