即时聊天APP - 注册和登陆

【即时聊天APP - 注册和登陆】一卷旌收千骑虏,万全身出百重围。这篇文章主要讲述即时聊天APP - 注册和登陆相关的知识,希望能为你提供帮助。
注册和登陆大多都是一些用户名和密码的验证,所以放在一起写,注册代码:

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了。

    推荐阅读