发表于: 2018-08-12 23:35:32
2 821
貌似代码没有完整上传到github,明天重新上传
一、今天完成的事情
利用Bmob完成了简单的注册功能(验证码功能还没有写),但是缺少网络连接状态判断,下次补上。
首先要初始化Bmob SDK,我一开始忘了这一步,导致程序运行错误。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化 Bmob SDK
// 第二个参数是Bmob服务器端创建的Application IDBmob.initialize(this, "第二个参数(Application ID)");
...
}
//注册功能
public void register () {
String phoneNumber = phoneNumberET.getText().toString();
String password =passwordET.getText().toString();
if (PhoneNumber.verifyPhoneNumber(phoneNumber, RegisterActivity.this)
&& Pssword.verifyPhoneNumber(password, RegisterActivity.this)) {
MyUser mu = new MyUser();
mu.setUsername(phoneNumber);
mu.setMobilePhoneNumber(phoneNumber);
mu.setPassword(password);
mu.signUp(new SaveListener<MyUser>() {
@Override
public void done(MyUser mu, BmobException e) {
if (e == null) {
Toast.makeText(RegisterActivity.this,
R.string.register_success, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(RegisterActivity.this,
R.string.register_fail, Toast.LENGTH_SHORT).show();
}
}
});
}
}
写了一个函数用来判断密码格式,其中的正则表达式表示密码由6到16位的字母、数字组成
public class Pssword {
public static boolean verifyPhoneNumber(String password, Context context) {
String passwordRegex = "[A-Za-z0-9_]{6,16}";
if (TextUtils.isEmpty(password) || !password.matches(passwordRegex)) {
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(R.string.wrong);
dialog.setMessage(R.string.please_input_password);
dialog.setCancelable(true);
dialog.show();
return false;
} else return true;
}
}
二、明天计划的事情
1.完善注册功能,添加验证码验证,添加网络连接状态判断
2.完成登录功能
3.完成记住密码功能
三、遇到的问题
1.多处用到了Dialog,需要自定义一个Dialog类
2.有些控件或Toast显示的文本是一样的,可不可以引用同样的string.xml资源?还是分开引用两个内容相同的资源?
四、收获
学会了Bmob的一些简单用法。
评论