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

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值