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();
}
}
});
}

由于对 “完成” 按钮设置了判断( 用户名 与 电话 是 必填项 , 两次密码 要判断 长度 和 输入内容 是否完全一致)并监听,所以如果判断条件不通过的话, “完成” 按钮是跳转不成功的:

 

"留拍"-注册/登录详解的更多相关文章

  1. Bmob第三方登录详解

    Bmob第三方登录详解 Bmob 第三方登录 简介 本文主要介绍新浪微博,QQ,微信的登录接入以及如何配合BmobSDK中的第三方登录功能实现第三方登录. 在使用之前请先按照快速入门创建好可以调用Bm ...

  2. 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

    本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...

  3. linux ssh使用深度解析(key登录详解)

    linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...

  4. SSH免密登录详解

    SSH免密登录详解 SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议. ​ 对于传统的网络服务程序(例如,FTP,Telnet等)来说 ...

  5. 前后端分离,简单JWT登录详解

    前后端分离,简单JWT登录详解 目录 前后端分离,简单JWT登录详解 JWT登录流程 1. 用户认证处理 2. 前端登录 3. 前端请求处理 4. 后端请求处理 5. 前端页面跳转处理 6. 退出登录 ...

  6. MySQL下载、安装和登录详解

    MySQL是一个小型的数据库管理系统,由于其体积小,速度快,尤其是开放源代码等优点,使得其在开发中得到广泛的使用,本文主要介绍MySQL数据库从下载到安装及通过命令行的使用等. 一.下载部分 下载链接 ...

  7. Yii2.0登录详解(下)

    在上一篇博文中,笔者讲述了yii2应用用户登陆的基本方法,但是这些方法到底是怎样实现登陆的呢?底层的原理到底是什么?在这篇博文笔者将从Yii的源码角度分析登陆的基本原理以及cookie自动登陆的原理, ...

  8. 关于NopCommerce3.6版用户登录详解

    一.登录方式 Nop登录方式有两种(且只能选择一种方式登录):一种是用用户名登录,另一种是用户注册邮箱登录,这个在后台可配置: 第一种:用户名登录 后台配置路径在商城设置à设置管理à客户设置:使用用户 ...

  9. (转)Zend Studio 10.6.1破解注册图文详解

    原文来自:http://www.softown.cn/soft/zend-studio/windows/10.6.1#downloads 下面我们以Zend Studio 10.6.1正式版为例来介绍 ...

随机推荐

  1. 建立标准编码规则(四)-C#编码规范分类及实现

    1 现实中的问题 在任何一个公司,每个程序员编写的习惯可能都是不一样的,大到命名空间,小到变量的名字.甚至,我们去github,里面的大牛每个开源的项目的命名规则可能都不一样. 我们通常会遇到下面的问 ...

  2. [Jenkins] 如何修改jenkins上的环境变量

    现象 当本地的环境变量发生变化时,在jenkins 构建时里面访问的环境变量仍是之前旧的(未更新的)导致构建出现错误,比如我以我所遇到的问题进行简单写下,下面例子中我是涉及到修改 PYTHONPATH ...

  3. vue 去除前后空格trim

    一.使用trim修饰符 <input v-model.trim = "massage" > 二.使用filter过去属性 html: <ul id="l ...

  4. 【转】玩玩你的Windows防火墙——穿透与防御

    前言:在防火墙专区,我经常看见朋友们讨论,“某某防火墙的性能如何”,亦或是,“某某防火墙的防御能力如何”.实际上,一个防火墙所履行的基本职责便是“网络访问控制”,即放行我们允许的通信,阻止我们未允许的 ...

  5. CSS3之transition&transform

    参考网页: CSS3 transform 属性使用详解: http://www.renniaofei.com/code/css3-transform-shuxing-shiyong-xiangjie/ ...

  6. Kmeans基本思想

    https://blog.csdn.net/zjc_game_coder/article/details/78595833 Kmeans算法的基本思想:看如下图: 解决小样本 .非线性及高维模式识别问 ...

  7. <数据结构与算法分析>读书笔记--模型

    为了在正式的构架中分析算法,我们需要一个计算模型.我们的模型基本上是一台标准的计算机,在机器中指令被顺序地执行.该模型有一个标准的简单指令系统,如加法.乘法.比较和赋值等.但不同于实际计算机情况的是, ...

  8. 国产的骄傲,Deepin发布v15.9

    深度操作系统是一个致力于为全球用户提供美观易用.安全可靠的Linux发行版.深度操作系统基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本.台式机和一体机.深度操作系统(d ...

  9. DIYer最担心的事来了!CPU降价彻底无望

    12月27日,IDC发布2019年中国PC市场十大预测.IDC指出,2018年全年中国PC市场预计最终销售为5200万台左右,下滑了3.4%.2019年中国PC市场会处于一种习惯性艰难期,但是市场也不 ...

  10. Java并发(四)线程池使用

    上一篇博文介绍了线程池的实现原理,现在介绍如何使用线程池. 目录 一.创建线程池 二.向线程池提交任务 三.关闭线程池 四.合理配置线程池 五.线程池的监控 线程池创建规范 一.创建线程池 我们可以通 ...