Bmob后端云--2

一、准备工作

1.注册Bmob账号

在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名、邮箱、设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了。


2.网站后台创建应用

登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用。


3.获取应用密钥和下载SDK

选择你要开发的应用,点击该应用下方对应的“应用密钥”


在跳转页面,获取Application ID,此ID将会在初始化SDK中使用到。


获取Application ID后,下载SDK,开发者可以根据自己的需求选择相应的iOS SDK 或Android SDK,点击下载即可。



二、代码实现

需求:本实例简单的实现用户利用用户名和密码进行注册。注册成功后,利用注册的数据,进行登陆,操作成功后给出相应的提示。

代码实现步骤:

1> 引入BmobSDK 架包

将下载的BmobSDK中包含如下的架包引入到Android应用


2> 在清单文件中添加如下的权限

[html] view plain copy print ?
  1. <uses-permission android:name="android.permission.INTERNET"/>  
  2. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
  4. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
  5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
  6. <uses-permission android:name="android.permission.READ_LOGS"/>  
3> 初始化BmobSDK

在你应用程序启动的Activity的onCreate()方法中初始化Bmob功能。代码如下所示:

[html] view plain copy print ?
  1. @Override  
  2.  protected void onCreate(Bundle savedInstanceState) {  
  3.       // TODO Auto-generated method stub  
  4.      super.onCreate(savedInstanceState);  
  5.       // 初始化 Bmob SDK  
  6.      // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID  
  7.      Bmob.initialize(this, "Your Application ID");  
  8.  }  
4>创建继承于BmobObject的实体UserBean

[html] view plain copy print ?
  1. package com.example.bmobdemo.bean;  
  2.   
  3. import cn.bmob.v3.BmobObject;  
  4.   
  5. /**  
  6.  *    
  7.  *       
  8.  * 项目名称:BmobDemo      
  9.  * 类名称:UserBean      
  10.  * 类描述:    继承BmobObject的用户实体类  
  11.  * 创建时间:2014年12月18日 下午10:25:40      
  12.  * 修改人:Administrator      
  13.  * 修改时间:2014年12月18日 下午10:25:40      
  14.  * 修改备注:      
  15.  * @version       
  16.  *  
  17.  */  
  18. public class UserBean extends BmobObject{  
  19.     /**  
  20.      *   
  21.      */  
  22.     private static final long serialVersionUID = 1L;  
  23.     private String loginId;  
  24.     private String userName;  
  25.     private String password;  
  26.     public String getLoginId() {  
  27.         return loginId;  
  28.     }  
  29.     public void setLoginId(String loginId) {  
  30.         this.loginId = loginId;  
  31.     }  
  32.     public String getUserName() {  
  33.         return userName;  
  34.     }  
  35.     public void setUserName(String userName) {  
  36.         this.userName = userName;  
  37.     }  
  38.     public String getPassword() {  
  39.         return password;  
  40.     }  
  41.     public void setPassword(String password) {  
  42.         this.password = password;  
  43.     }  
  44.     @Override  
  45.     public String toString() {  
  46.         return "UserBean [loginId=" + loginId + "userName=" + userName  
  47.                 + ", password=" + password + "]";  
  48.     }  
  49.       
  50.       
  51.       
  52. }  

4>案例效果


Bmob平台服务器数据


5>相关的布局文件和清单文件

1.清单文件,AndroidManifest.xml

[html] view plain copy print ?
  1. <span style="font-size:18px;">xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.example.bmobdemo"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="17"  
  9.         android:targetSdkVersion="19" />  
  10.   
  11.     <uses-permission android:name="android.permission.INTERNET" />  
  12.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  13.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  14.     <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  15.     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  
  16.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  17.     <uses-permission android:name="android.permission.READ_LOGS" />  
  18.   
  19.     <application  
  20.         android:allowBackup="true"  
  21.         android:icon="@drawable/ic_launcher"  
  22.         android:label="@string/app_name"  
  23.         android:theme="@style/AppTheme" >  
  24.         <activity  
  25.             android:name="com.example.bmobdemo.MainActivity"  
  26.             android:label="@string/app_name" >  
  27.             <intent-filter>  
  28.                 <action android:name="android.intent.action.MAIN" />  
  29.   
  30.                 <category android:name="android.intent.category.LAUNCHER" />  
  31.             intent-filter>  
  32.         activity>  
  33.     application>  
  34.   
  35. manifest>span>  

2.主布局文件,activity_main.xml

本实例需要一个用户名的EditText和密码的EditText,以及注册和登陆的Button。

[html] view plain copy print ?
  1. <span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <LinearLayout  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:layout_marginBottom="20dp"  
  11.         android:orientation="horizontal" >  
  12.   
  13.         <TextView  
  14.             android:layout_width="wrap_content"  
  15.             android:layout_height="wrap_content"  
  16.             android:layout_marginRight="10dp"  
  17.             android:text="用户名:"  
  18.             android:textColor="#FF0000" />  
  19.   
  20.         <EditText  
  21.             android:id="@+id/id_login_name_et"  
  22.             android:layout_width="match_parent"  
  23.             android:layout_height="wrap_content" />  
  24.     LinearLayout>  
  25.   
  26.     <LinearLayout  
  27.         android:layout_width="match_parent"  
  28.         android:layout_height="wrap_content"  
  29.         android:layout_marginBottom="20dp"  
  30.         android:orientation="horizontal" >  
  31.   
  32.         <TextView  
  33.             android:layout_width="wrap_content"  
  34.             android:layout_height="wrap_content"  
  35.             android:layout_marginRight="10dp"  
  36.             android:text="密码:"  
  37.             android:textColor="#FF0000" />  
  38.   
  39.         <EditText  
  40.             android:id="@+id/id_password_et"  
  41.             android:layout_width="match_parent"  
  42.             android:layout_height="wrap_content" />  
  43.     LinearLayout>  
  44.   
  45.     <Button  
  46.         android:id="@+id/id_register_btn"  
  47.         android:layout_width="match_parent"  
  48.         android:layout_height="wrap_content"  
  49.         android:layout_marginBottom="10dp"  
  50.         android:text="注册"  
  51.         android:textColor="#0000FF" />  
  52.   
  53.     <Button  
  54.         android:id="@+id/id_login_btn"  
  55.         android:layout_width="match_parent"  
  56.         android:layout_height="wrap_content"  
  57.         android:text="登陆"  
  58.         android:textColor="#0000FF" />  
  59.   
  60. LinearLayout>span>  

5>java实现代码

1.主界面代码MainActivity.java

[html] view plain copy print ?
  1. package com.example.bmobdemo;  
  2.   
  3. import java.util.List;  
  4.   
  5. import cn.bmob.v3.Bmob;  
  6. import cn.bmob.v3.BmobQuery;  
  7. import cn.bmob.v3.listener.FindListener;  
  8. import cn.bmob.v3.listener.SaveListener;  
  9.   
  10. import com.example.bmobdemo.bean.UserBean;  
  11. import com.example.bmobdemo.util.ToastUtils;  
  12.   
  13. import android.app.Activity;  
  14. import android.os.Bundle;  
  15. import android.view.View;  
  16. import android.view.View.OnClickListener;  
  17. import android.widget.Button;  
  18. import android.widget.EditText;  
  19.   
  20. public class MainActivity extends Activity implements OnClickListener {  
  21.   
  22.     // Bmob应用创建建时获取的Application id,根据自己创建的应用来写入  
  23.     private static final String BMOB_APPLICATION_ID = "be783fdda4eac8a781a9f80596e98fe0";  
  24.     private Button registerBtn, loginBtn;  
  25.     private EditText loginEt, passwordEt;  
  26.   
  27.     @Override  
  28.     protected void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_main);  
  31.   
  32.         /**  
  33.          * 初始化BmobSDK  
  34.          */  
  35.         Bmob.initialize(this, BMOB_APPLICATION_ID);  
  36.         initView();  
  37.     }  
  38.   
  39.     /**  
  40.      *   
  41.      * 初始化控件  
  42.      */  
  43.     private void initView() {  
  44.         registerBtn = (Button) this.findViewById(R.id.id_register_btn);  
  45.         loginBtn = (Button) this.findViewById(R.id.id_login_btn);  
  46.         loginEt = (EditText) this.findViewById(R.id.id_login_name_et);  
  47.         passwordEt = (EditText) this.findViewById(R.id.id_password_et);  
  48.   
  49.         registerBtn.setOnClickListener(this);  
  50.         loginBtn.setOnClickListener(this);  
  51.   
  52.     }  
  53.   
  54.     /**  
  55.      * 注册  
  56.      */  
  57.     private void register() {  
  58.         String loginId = loginEt.getText().toString();  
  59.         String password = passwordEt.getText().toString();  
  60.         if (loginId.isEmpty() || password.isEmpty()) {  
  61.             ToastUtils.toast(this, "密码或账号不为空!");  
  62.             return;  
  63.         }  
  64.   
  65.         final UserBean userBean = new UserBean();  
  66.         userBean.setLoginId(loginId);  
  67.         userBean.setPassword(password);  
  68.         userBean.setUserName("Bmob");  
  69.         /**  
  70.          * 保存数据到Bmob服务器  
  71.          */  
  72.         userBean.save(this, new SaveListener() {  
  73.   
  74.             @Override  
  75.             public void onSuccess() {  
  76.                 ToastUtils.toast(MainActivity.this, userBean.toString()  
  77.                         + " 注册成功");  
  78.             }  
  79.   
  80.             @Override  
  81.             public void onFailure(int arg0, String arg1) {  
  82.                 ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 注册失败");  
  83.             }  
  84.         });  
  85.   
  86.     }  
  87.   
  88.     /**  
  89.      * 登陆  
  90.      */  
  91.     private void login() {  
  92.         String loginId = loginEt.getText().toString();  
  93.         String password = passwordEt.getText().toString();  
  94.         if (loginId.isEmpty() || password.isEmpty()) {  
  95.             ToastUtils.toast(this, "密码或账号不为空!");  
  96.             return;  
  97.         }  
  98.   
  99.         BmobQuery<UserBean> userQuery = new BmobQuery<UserBean>();  
  100.   
  101.         // 查询条件  
  102.         userQuery.addWhereEqualTo("loginId", loginId);  
  103.         userQuery.addWhereEqualTo("password", password);  
  104.   
  105.         userQuery.findObjects(this, new FindListener<UserBean>() {  
  106.   
  107.             @Override  
  108.             public void onError(int arg0, String arg1) {  
  109.                 ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 登陆失败");  
  110.             }  
  111.   
  112.             @Override  
  113.             public void onSuccess(List<UserBean> userList) {  
  114.                 if (userList != null && userList.size() > 0)  
  115.                     ToastUtils.toast(MainActivity.this, " 登陆成功");  
  116.                 else {  
  117.                     ToastUtils.toast(MainActivity.this, " 登陆失败");  
  118.                 }  
  119.             }  
  120.         });  
  121.     }  
  122.   
  123.     @Override  
  124.     public void onClick(View v) {  
  125.         switch (v.getId()) {  
  126.         case R.id.id_register_btn:  
  127.             register();  
  128.             break;  
  129.         case R.id.id_login_btn:  
  130.             login();  
  131.             break;  
  132.         }  
  133.     }  
  134.   
  135. }  

2.实体类UserBean

[html] view plain copy print ?
  1. package com.example.bmobdemo.bean;  
  2.   
  3. import cn.bmob.v3.BmobObject;  
  4.   
  5. /**  
  6.  *    
  7.  *       
  8.  * 项目名称:BmobDemo      
  9.  * 类名称:UserBean      
  10.  * 类描述:    继承BmobObject的用户实体类  
  11.  * 创建时间:2014年12月18日 下午10:25:40      
  12.  * 修改人:Administrator      
  13.  * 修改时间:2014年12月18日 下午10:25:40      
  14.  * 修改备注:      
  15.  * @version       
  16.  *  
  17.  */  
  18. public class UserBean extends BmobObject{  
  19.     /**  
  20.      *   
  21.      */  
  22.     private static final long serialVersionUID = 1L;  
  23.     private String loginId;  
  24.     private String userName;  
  25.     private String password;  
  26.     public String getLoginId() {  
  27.         return loginId;  
  28.     }  
  29.     public void setLoginId(String loginId) {  
  30.         this.loginId = loginId;  
  31.     }  
  32.     public String getUserName() {  
  33.         return userName;  
  34.     }  
  35.     public void setUserName(String userName) {  
  36.         this.userName = userName;  
  37.     }  
  38.     public String getPassword() {  
  39.         return password;  
  40.     }  
  41.     public void setPassword(String password) {  
  42.         this.password = password;  
  43.     }  
  44.     @Override  
  45.     public String toString() {  
  46.         return "UserBean [loginId=" + loginId + "userName=" + userName  
  47.                 + ", password=" + password + "]";  
  48.     }  
  49.       
  50.       
  51.       
  52. }  

3.工具类ToastUtils.java

[html] view plain copy print ?
  1. package com.example.bmobdemo.util;  
  2.   
  3. import android.content.Context;  
  4. import android.widget.Toast;  
  5.   
  6. /**  
  7.  * Toast提示工具类  
  8.  * createdTime: 2014年12月18日 下午10:55:21  
  9.  *  
  10.  */  
  11. public class ToastUtils {  
  12.       
  13.     public static void toast(Context context,String msg){  
  14.         Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();  
  15.     }  
  16.       
  17.     public static void toast(Context context,int msgId){  
  18.         Toast.makeText(context, msgId, Toast.LENGTH_SHORT).show();  
  19.     }  
  20.       

你可能感兴趣的:(Bmob---2)