"留拍"-注册/登录详解
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正式版为例来介绍 ...
随机推荐
- VRS生成的虚拟观测值存在的问题
目前生成的虚拟观测值. 天津的版本,如果有数据库中有天线类型,那么会对天线类型改正了两次. 解决方法:在生成虚拟观测值编码的部分,注释掉天线改正的部分. 对结果的影响:错误版本生成的虚拟观测值,移动站 ...
- Python进阶(一)
完成慕课网的python基础学习以后,大约花了三天时间,平均每天一个小时,总结了一些比较好的例题和思想方法,下面来学习python进阶吧 参考廖雪峰官方课程 函数 python官方函数调用文档 定义默 ...
- ABAP 7.50 新特性之另一个CORRESPONDING
在ABAP中,存在着一条法则:同样的名称代表的不一定是同样的东西(具体可看最近的相关讨论). 但是如你们所知的,存在着一个很好的例外: 所有涉及到使用CORRESPONDING为结构赋值的关键字的语法 ...
- Python3编写网络爬虫10-数据存储方式三-CSV文件存储
3.CSV文件存储 CSV 全称 Comma-Separated Values 中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据.文件是一个字符序列 可以由任意数目的记录组成相当于一个结 ...
- Java设计模式之八 ----- 责任链模式和命令模式
前言 在上一篇中我们学习了结构型模式的享元模式和代理模式.本篇则来学习下行为型模式的两个模式, 责任链模式(Chain of Responsibility Pattern)和命令模式(Command ...
- GUI_文件管理器(练习)
实现想windows下的文件管理器(主要是监听器里的方法,showDir()写法) package com.mywindow.test; import java.awt.event.ActionEve ...
- P2665 [USACO08FEB]连线游戏Game of Lines
本着dp的心情,结果是道水题STL set就行了 题意:看有多少种斜率(题在那里半天说多少直线(不平行的)),其实就是找斜率的种类 #include<cstdio> #include&l ...
- 0 vs工程添加sdk
配置64位 库目录:(VC++目录) 可选配置 VS SDK(如果报错缺少kernel32.lib) C:\Program Files (x86)\Microsoft SDKs\Windows\v7. ...
- Elasticsearch 数据搜索篇·【入门级干货】===转
ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ...
- TCP/IP协议---ARP协议
ARP协议 以下就默认在以太网类型的网络. 这个协议的作用是通过ip地址(32bit)找到硬件地址(48bit).顺便提一下:在一个局域网里,大家常见的设备交换机,交换机上的主机在互相通信时,实际用的 ...