"留拍"-注册/登录详解
1. 注册
打开 “留拍” 软件,进入 主页面 ,然后按 注册 按钮:

在注册页面什么内容 都没有写 上去的情况下,按 完成 按钮:

首先把URL封装起来:
public class URL {
public final static String BASEURL = "http://192.168.94.161:1691/aos/mall";
public final static String REGISTER = BASEURL + "/user/addUser.do";
public final static String LOGIN = BASEURL + "/user/listUser.do";
}
然后通过完成按钮来作用户输入处理,并且与后台交换数据,后台返回一个参数 “Y” 则表明传参成功且后台返回值成功,即注册成功:
case R.id.register_complete:
if (user_name.length() < 1) {
user_name.requestFocus();
user_name.setError("请输入用户名");
return;
}
if (password.length() < 1) {
password.setError("请输入密码!");
password.setText("");
return;
}
if (re_password.length() < 1) {
re_password.setError("请再次输入确认密码!");
re_password.setText("");
return;
}
if (pwd.length() != re_pwd.length()) {
re_password.requestFocus();
re_password.setError("您两次输入的密码不一致!请重新输入");
re_password.setText("");
return;
}
if (phone.length() < 1) {
phone.requestFocus();
phone.setError("请输入电话");
return;
} RequestParams params = new RequestParams();
params.addQueryStringParameter("f_name", user_name.getText()
.toString().trim());
params.addQueryStringParameter("f_password", password.getText()
.toString().trim());
params.addQueryStringParameter("f_sex", sex);
params.addQueryStringParameter("f_phone", phone.getText()
.toString().trim());
params.addQueryStringParameter("f_address", address.getText()
.toString().trim());
params.addQueryStringParameter("f_introduction", register_complete
.getText().toString().trim()); // ArrayList<NameValuePair> list = new
// ArrayList<NameValuePair>();
// params.addQueryStringParameter(list);
http.send(HttpMethod.POST, URL.REGISTER, params,
new RequestCallBack<String>() { @Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(Register.this, arg1, 0).show();
} @Override
public void onSuccess(ResponseInfo<String> responseInfo) {
String result = responseInfo.result; Log.i("inof", result);
try {
JSONObject jsonObject = new JSONObject(result);
String rs = jsonObject.optString("appmsg");
if (rs.isEmpty()) {
Toast.makeText(Register.this, "null", 0)
.show();
} else if (rs.equals("Y")) {
Toast.makeText(Register.this, "注册成功", 0)
.show();
finish();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // JSONArray jsonArray;
// String string;
// try {
// jsonArray=new JSONArray(responseInfo.result);
// string = jsonArray.getString(0);
// Log.i("dddddddd", string);
// } catch (JSONException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.print("re"+rs);
// startActivity(new
// Intent(this,MainActivity.class)); // if (rs.equals("yes")) {
// Register register = new Register();
// register.finish();
// }
}
});
break;
注册成功后,后台会存储用户输入的信息,并返回值。
然后用户可以进行登陆,通过与后台数据库匹配信息来作判别用户是否存在:
public void onClick(View v) {
// TODO Auto-generated method stub
if (user_name.length() < 1) {
user_name.requestFocus();
user_name.setError("请输入用户名");
return;
}
if (password.length() < 1) {
password.requestFocus();
password.setError("请输入密码");
password.setText("");
return;
}
RequestParams params = new RequestParams();
params.addQueryStringParameter("f_name", user_name.getText().toString()
.trim());
params.addQueryStringParameter("f_password", password.getText()
.toString().trim());
http.send(HttpMethod.POST, URL.LOGIN, params,
new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(Login.this, arg1, 0).show();
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
String result = responseInfo.result;
Log.i("inof", result);
try {
JSONObject jsonObject = new JSONObject(result);
String rs = jsonObject.optString("f_id");
if (rs.isEmpty()) {
Toast.makeText(Login.this, rs, 0).show();
} else if (rs.equals("N")) {
Toast.makeText(Login.this, "账户或密码错误", 0).show();
}
else
{Toast.makeText(Login.this, "登录成功", 0).show();
if(jsonObject.optString("f_status").equals("customer"))
{
startActivity(new Intent(Login.this,Index.class));
finish();
}
else//摄影
{
startActivity(new Intent(Login.this,Index2.class));
finish();
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
由于对 “完成” 按钮设置了判断( 用户名 与 电话 是 必填项 , 两次密码 要判断 长度 和 输入内容 是否完全一致)并监听,所以如果判断条件不通过的话, “完成” 按钮是跳转不成功的:



"留拍"-注册/登录详解的更多相关文章
- Bmob第三方登录详解
Bmob第三方登录详解 Bmob 第三方登录 简介 本文主要介绍新浪微博,QQ,微信的登录接入以及如何配合BmobSDK中的第三方登录功能实现第三方登录. 在使用之前请先按照快速入门创建好可以调用Bm ...
- 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解
本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...
- linux ssh使用深度解析(key登录详解)
linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...
- SSH免密登录详解
SSH免密登录详解 SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议. 对于传统的网络服务程序(例如,FTP,Telnet等)来说 ...
- 前后端分离,简单JWT登录详解
前后端分离,简单JWT登录详解 目录 前后端分离,简单JWT登录详解 JWT登录流程 1. 用户认证处理 2. 前端登录 3. 前端请求处理 4. 后端请求处理 5. 前端页面跳转处理 6. 退出登录 ...
- MySQL下载、安装和登录详解
MySQL是一个小型的数据库管理系统,由于其体积小,速度快,尤其是开放源代码等优点,使得其在开发中得到广泛的使用,本文主要介绍MySQL数据库从下载到安装及通过命令行的使用等. 一.下载部分 下载链接 ...
- Yii2.0登录详解(下)
在上一篇博文中,笔者讲述了yii2应用用户登陆的基本方法,但是这些方法到底是怎样实现登陆的呢?底层的原理到底是什么?在这篇博文笔者将从Yii的源码角度分析登陆的基本原理以及cookie自动登陆的原理, ...
- 关于NopCommerce3.6版用户登录详解
一.登录方式 Nop登录方式有两种(且只能选择一种方式登录):一种是用用户名登录,另一种是用户注册邮箱登录,这个在后台可配置: 第一种:用户名登录 后台配置路径在商城设置à设置管理à客户设置:使用用户 ...
- (转)Zend Studio 10.6.1破解注册图文详解
原文来自:http://www.softown.cn/soft/zend-studio/windows/10.6.1#downloads 下面我们以Zend Studio 10.6.1正式版为例来介绍 ...
随机推荐
- Properties集合_修改配置信息
集合中的数据来自于一个文件 注意:必须要保证该文件中的数据是键值对. 需要使用到读取流 使用load()方法读取已有文件中的数据,存储到Properties集合中 public class Pro ...
- 【SDOI2009】Bill的挑战
Description Sheng bill不仅有惊人的心算能力,还可以轻松地完成各种统计.在昨天的比赛中,你凭借优秀的程序与他打成了平局,这导致Sheng bill极度的不满.于是他再次挑战你.这次 ...
- CPU的内部架构和工作原理-原文
CPU从逻辑上可以划分成3个模块,分别是.和,这三部分由CPU内部总线连接起来.如下所示: 控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register). ...
- UVA1600-Patrol Robot(BFS进阶)
Problem UVA1600-Patrol Robot Accept:529 Submit:4330 Time Limit: 3000 mSec Problem Description A rob ...
- 关于Hamilton问题的研究
关于Hamilton问题的研究 首先介绍一下Hamilton问题:哈密顿问题寻找一条从给定的起点到给定的终点沿途恰好经过所有其他结点一次的路径.(摘自百度百科) 从刚开始学OI买了信息学一本通,这个问 ...
- go标准库的学习-io/ioutil
参考https://studygolang.com/pkgdoc 导入方式: import "io/ioutil" 包ioutil实现了一些I/O实用程序函数. 1.var 变量 ...
- virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统
在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...
- 多线程操作的方法(sleep,)setPriority(Thread.MIN_PRIORITY);yield();
在多线程中所有的操作方法都是从Thread类开始的,所有的操作基本都在Thread类中. 第一取得线程名字 a,在Thread类中,可以通过getName()方法,获得线程的名字,可以通过setNam ...
- Java不定参数Object… obj 和 Object[] 的区别
Java不定参数Object… obj 和 Object[] 的区别 简述: java中方法重载可以实现参数不同自动匹配对应方法.但现实中也存在这种问题.普通传参对于形如下面的方法,却显得臃肿而失优雅 ...
- 12,13,14节-51单片机ESP8266学习-AT指令(暂停更新)需要整理
从这一节开始,以视频加源码的形式,后期视频和程序将放在链接中 资料链接 链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA 密码:nhn3 ...