注册和登陆大多都是一些用户名和密码的验证,所以放在一起写,注册代码:

String account = accountEdit.getText().toString().trim();
String password = passwordEdit.getText().toString().trim();
String yanzheng = yanzhengma.getText().toString().trim();
if(account.equals("")||password.equals("")||yanzheng.equals("")) {
if (account.equals(""))
Toast.makeText(this, "请填写用户名!", Toast.LENGTH_SHORT).show();
else if(password.equals(""))
Toast.makeText(this, "请填写用户密码!", Toast.LENGTH_SHORT).show();
else if(yanzheng.equals(""))
Toast.makeText(this, "请点击获取验证码!", Toast.LENGTH_SHORT).show();
} else if(a != Integer.valueOf(yanzheng)){
Toast.makeText(this, "验证码输入错误!", Toast.LENGTH_SHORT).show();
} else if (account.length() > 6 || account.length() < 2) {
Toast.makeText(this, "请输入2-6位用户名!", Toast.LENGTH_SHORT).show();
accountEdit.setText("");
} else if (password.length() > 8 || password.length() < 4) {
Toast.makeText(this, "请输入4-8位密码!", Toast.LENGTH_SHORT).show();
passwordEdit.setText("");
} else {
//存储
BmobUser us = new BmobUser();
us.setUsername(account);
us.setPassword(password);
//检查网络连接
if(!NetWork.isNetConnection(this)){
Toast.makeText(this,"无网络连接!",Toast.LENGTH_SHORT).show();
return;
}else{
us.signUp(new SaveListener() {
@Override
public void done(BmobUser re, BmobException e) {
if(e==null){
Toast.makeText(Register.this, "注册成功!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(Register.this, "用户名已存在,请直接登录!", Toast.LENGTH_SHORT).show();
}
}
});
//跳转到登录界面
Intent intent2 = new Intent(Register.this,login.class);
intent2.putExtra("account", account);
intent2.putExtra("password", password);
startActivity(intent2);
finish();
}
}

对于用户名和密码的一些判断,使用signUp来进行用户注册,注册成功后会利用intent传递用户参数给登录界面。

下面是登陆界面的初始化代码,本文使用LitePal进行本地数据库存储用户信息,并将用户的用户名和密码使用SharedPreferences文件存储,这里可以使用MD5进行加密,但我没写:

//数据库初始化
LitePal.initialize(this);
LitePal.getDatabase();
// 注册订阅者
EventBus.getDefault().register(this);
//初始化bmob
Bmob.initialize(this, "d4dafd6854343ba7b42a4c347757c7e6");
BmobIM.init(this);
BmobIM.registerDefaultMessageHandler(new ImMessageHandler());
//TODO 集成:1.4、初始化数据服务SDK、初始化设备信息并启动推送服务
// 使用推送服务时的初始化操作
BmobInstallationManager.getInstance().initialize(new InstallationListener() {
@Override
public void done(BmobInstallation bmobInstallation, BmobException e) {}});
// 启动推送服务
BmobPush.startWork(this);

接下来判断复选框(是否记住密码)以及是否有参数传递过来:

//判断是否选中
if(isRemember){
String account = pref.getString("account","");
String password = pref.getString("password","");
accountEdit.setText(account);
passwordEdit.setText(password);
rememberPass.setChecked(true);
}
try {
Intent intent0 = getIntent();
String acc = intent0.getStringExtra("account");
String pass = intent0.getStringExtra("password");
//判断是否记住
if(isRemember) {
String acc1 = accountEdit.getText().toString().trim();
String pass1 = passwordEdit.getText().toString().trim();
editor = pref.edit();
if(rememberPass.isChecked()){
editor.putBoolean("remember",true);
editor.putString("account",acc1);
editor.putString("password",pass1);
} else {
editor.clear();
}
editor.apply();
}
//判断传递值是否为空
if(!(acc.equals("")&&pass.equals(""))){
accountEdit.setText(acc);
passwordEdit.setText(pass);
}
}catch (Exception e) {
Log.i(TAG, "onCreate: "+e);
}

当用户点击登陆按钮,调用login方法判断用户是否存在于服务器中:

//检查网络连接
if(!NetWork.isNetConnection(this)){
Toast.makeText(this,"无网络连接!",Toast.LENGTH_SHORT).show();
return;
}else{
// 登录验证
us.login(new SaveListener() {
@Override
public void done(BmobUser bmobUser, BmobException e) {
if(e==null){
Intent intent1 = new Intent(login.this,MainActivity.class);
startActivity(intent1);
finish();
}else{
Toast.makeText(login.this,"用户名或密码错误,请重新登陆!",Toast.LENGTH_SHORT).show();
}
}
});
}

用户登录成功之后就会跳转到MainActivity了。

最新文章

  1. PRINCE2特征(三)
  2. CSS3动画效果-7.13
  3. eclipse: The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found 解决方案
  4. myeclipse里的调试快捷键
  5. Linux系统管理命令之用户组管理
  6. BootCDN和npm
  7. 海蜘蛛WiFiDog固件 MTK7620 OEM,带云AC功能、探针、广告插入,MTK7620解包打包维修默认参数
  8. SSH服务器拒绝了密码,xshell连不上虚拟机怎么办
  9. DefaultHttpClient使用
  10. Unity3D 200个插件免费分享
  11. C++ const用法小结 (欢迎大家拍砖)
  12. PAT 1011
  13. C# 之 SqlConnection 类
  14. bzoj2165
  15. linux设备驱动程序注冊过程具体解释
  16. POJ 1062 昂贵的聘礼详解最短路变形
  17. ios逆向过程中lldb调试技巧-po篇
  18. JSP基础概要
  19. JavaScript技巧(未完成)
  20. 爬虫--工具安装Jupyter anaconda

热门文章

  1. opencv 视觉项目学习笔记(二): 基于 svm 和 knn 车牌识别
  2. PL/SQL 调用 JAVA代码
  3. vue 实现数据绑定原理
  4. 分布式任务队列--Celery的学习笔记
  5. sed命令及替换文件内容
  6. Linux系统启动流程(重要!)
  7. 自由变形技术(Free-Form Deformation)
  8. Redis学习总结(二)--Redis数据结构
  9. mac系统chrome浏览器快捷键
  10. c++学习笔记_4