Bmob的使用教程见官网:http://www.bmob.cn/
1.注册界面
界面比较简单,暂时没有添加手机或者邮箱注册的功能,后续会完善。直接上代码了,布局文件的代码省略。
package com.example.administrator.mydolphin.dolphin.regist; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.example.administrator.mydolphin.R; import com.example.administrator.mydolphin.dolphin.ToastUtils; import com.example.administrator.mydolphin.dolphin.User; import cn.bmob.v3.exception.BmobException; import cn.bmob.v3.listener.SaveListener; public class RegistActivity extends AppCompatActivity implements View.OnClickListener { EditText et_regist_user; EditText et_regist_password; Button bt_regist_save,bt_regist_cancel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_regist); et_regist_user= (EditText)findViewById(R.id.et_regist_user); et_regist_password= (EditText) findViewById(R.id.et_regist_password); bt_regist_save= (Button) findViewById(R.id.bt_regist_save); bt_regist_cancel= (Button) findViewById(R.id.bt_regist_cancel); bt_regist_save.setOnClickListener(this); bt_regist_cancel.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.bt_regist_save: String user_num=et_regist_user.getText().toString(); String user_password=et_regist_password.getText().toString().trim(); // 非空验证 if (user_num.isEmpty() || user_password.isEmpty()) { ToastUtils.toast(this, "密码或账号不能为空!"); return; } // 使用BmobSDK提供的注册功能 User myUser=new User(); myUser.setUsername(user_num); myUser.setPassword(user_password); myUser.signUp(new SaveListener<User>() { @Override public void done(User s, BmobException e) { if(e==null){ Toast.makeText(RegistActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); }else{ //loge(e); Toast.makeText(RegistActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } } }); //注意:不能用save方法进行注册 finish(); break; case R.id.bt_regist_cancel: finish(); break; default: break; } } }2.登录界面
按照bmob给出的案例来实现该功能,代码如下
package com.example.administrator.mydolphin.dolphin.login; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.example.administrator.mydolphin.R; import com.example.administrator.mydolphin.dolphin.MainMenu.MainActivity; import com.example.administrator.mydolphin.dolphin.ToastUtils; import com.example.administrator.mydolphin.dolphin.User; import com.example.administrator.mydolphin.dolphin.regist.RegistActivity; import com.google.android.gms.common.api.GoogleApiClient; import cn.bmob.v3.BmobUser; import cn.bmob.v3.exception.BmobException; import cn.bmob.v3.listener.SaveListener; public class LoginActivity extends Activity implements OnClickListener { TextView tv_regist; EditText et_login_user, et_login_password; Button bt_login; /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ private GoogleApiClient client; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_login); tv_regist = (TextView) findViewById(R.id.tv_regist); bt_login = (Button) findViewById(R.id.login); et_login_user = (EditText) findViewById(R.id.et_login_user); et_login_password = (EditText) findViewById(R.id.et_login_password); tv_regist.setOnClickListener(LoginActivity.this); bt_login.setOnClickListener(LoginActivity.this); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. //client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); } @Override public void onClick(View arg0) { // TODO Auto-generated method stub switch (arg0.getId()) { case R.id.tv_regist: Intent intent_regist = new Intent(LoginActivity.this, RegistActivity.class); startActivity(intent_regist); break; case R.id.login: String user_num = et_login_user.getText().toString(); String user_password = et_login_password.getText().toString().trim(); // 非空验证 if (user_num.isEmpty() || user_password.isEmpty()) { ToastUtils.toast(this, "密码或账号不能为空!"); return; } User bu2 = new User(); bu2.setUsername(user_num); bu2.setPassword(user_password); // 使用BmobSDK提供的登录功能 bu2.login(new SaveListener<BmobUser>() { @Override public void done(BmobUser bmobUser, BmobException e) { if(e==null){ ToastUtils.toast(LoginActivity.this, " 登录成功"); Intent intent_main = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent_main); //通过BmobUser user = BmobUser.getCurrentUser()获取登录成功后的本地用户信息 //如果是自定义用户对象MyUser,可通过MyUser user = BmobUser.getCurrentUser(MyUser.class)获取自定义用户信息 }else{ ToastUtils.toast(LoginActivity.this, " 登录失败"); //loge(e); } } }); break; } } /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ }至于登陆成功的条件还可以添加一下例如网络连接的条件等。
3.用户的对象类
package com.example.administrator.mydolphin.dolphin; import cn.bmob.v3.BmobUser; /** * Created by Administrator on 2017/1/26. */ public class User extends BmobUser { private Boolean sex; private String nick; private Integer age; public boolean getSex() { return this.sex; } public void setSex(boolean sex) { this.sex = sex; } public String getNick() { return this.nick; } public void setNick(String nick) { this.nick = nick; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }4.build.grade文件的配置
此文件中的sdk版本尽量都用最新的版本,此外,此文件中还可以添加一些引入的三方依赖库,bmob中也涉及一些使用教程
注意:1).如果遇到版本的冲突,需要更改版本号或者更新,android支持库android support library如果没有,需要在sdk manager中安装和导入,
2).bmob的库版本一般需要调整,下载的bmob包里的库版本一般高于教程上的版本,所以需要在代码中更改一下。
直接上代码了
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" useLibrary 'org.apache.http.legacy' defaultConfig { applicationId "com.example.administrator.mydolphin" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'cn.bmob.android:bmob-sdk:3.5.3' compile 'cn.bmob.android:bmob-push:0.8' compile 'cn.bmob.android:http-legacy:1.0' androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.1' testCompile 'junit:junit:4.12' compile 'com.google.android.gms:play-services-appindexing:8.4.0' } android { sourceSets { main.jniLibs.srcDirs = ['libs'] } }5.完成上述基本内容后,可以到bmob的数据库中测试了,现在手机注册一下,成功后在数据库上查看是否有该信息记录。
后面还会继续完成其他功能,这贴仅作记录和供大家参考,有建议或者问题希望大家提出,谢谢