首页 > 系统 > Android > 正文

android studio使用Bmob来实现登录注册的功能

2019-11-09 17:03:37
字体:
来源:转载
供稿:网友

刚刚抛下了Eclipse,初学了android studio,一开始真是用起来感觉难受,不过的确能够实现一些Eclipse不能实现的功能,而且用起来还蛮方便。

网上虽然有很多关于这等方面的教程,但是一些细节自己写起来才发现存在很多问题。问题会在最后列出。

下面就详细记录一下编写过程,还请大家多多指教。

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的数据库中测试了,现在手机注册一下,成功后在数据库上查看是否有该信息记录。

后面还会继续完成其他功能,这贴仅作记录和供大家参考,有建议或者问题希望大家提出,谢谢


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表