Android之Bmob腾挪云服务(一)
Android之Bmob移动云服务(一)
没有口水与汗水,就没有成功的泪水。
本讲内容:Bmob移动云服务
一、Bmob的使用步骤
1、在你的项目根目录下创建"libs"目录,将下载的BmobSDK文件中的两个.jar文件放入该目录下。
对于Eclipse工程,请参照下面的步骤添加jar包:
1. 选择你的工程,单击鼠标右键选择“Properties”项
2. 在弹出的窗口中选择“Java Build Path”项
3. 在右侧的主窗体中选择“Libraries”选项卡
4. 点击“Add JARs…”按钮
5. 选择你拷贝到libs目录下的Bmob.jar文件
6. 点击“OK”完成
2、在您的应用程序中添加相应的权限:
<!-- Bmob SDK权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" />
3、在你的应用程序启动的Activity的onCreate()方法中初始化Bmob功能
// 初始化 Bmob SDK ,并将第二个参数appKey替换成你在Bmob服务器端创建的应用key Bmob.initialize(this, "14fcb34593937578a18862a1b33f29a1");
示例一:Bmob 增删改查
运行应用程序后,一个新的对象类Person将会传送到我们的服务器,并在您的应用表中创建Person数据表,它在Bmob服务器端应该是这样展示的:
下面是res/layout/activity_main.xml 布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg" > <EditText android:id="@+id/id_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:gravity="center" android:hint="input name" /> <EditText android:id="@+id/id_address" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_name" android:layout_marginTop="20dp" android:gravity="center" android:hint="input address" android:lines="2" /> <Button android:id="@+id/id_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/id_address" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:minWidth="100dp" android:onClick="submit" android:text="Submit" /> <Button android:id="@+id/id_queryAll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/id_submit" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:minWidth="100dp" android:onClick="queryAll" android:text="Query all" /> <EditText android:id="@+id/id_queryName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/id_queryAll" android:layout_marginTop="20dp" android:gravity="center" android:hint="input name" android:minWidth="200dp" /> <Button android:id="@+id/id_queryPerson" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/id_queryAll" android:layout_marginTop="20dp" android:minWidth="150dp" android:onClick="queryPerson" android:text="Query person" /> <EditText android:id="@+id/id_updateAddress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/id_queryPerson" android:layout_marginTop="20dp" android:gravity="center" android:hint="input address" android:minWidth="200dp" /> <Button android:id="@+id/id_update" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/id_queryPerson" android:layout_marginTop="20dp" android:minWidth="150dp" android:onClick="update" android:text="Update" /> <Button android:id="@+id/id_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/id_update" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:minWidth="100dp" android:onClick="delete" android:text="Delete" /> </RelativeLayout>
下面是Person.java文件:(创建JavaBean)
/** * 使用Bmob存储数据(需extends BmobObject) Person 对应一张表 name 对应表中的字段名 address * * @author Administrator * */ public class Person extends BmobObject { private String name; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
下面是MainActivity.java主界面文件:
public class MainActivity extends Activity { private EditText mName; private EditText mAddress; private EditText mQueryName; private EditText mUpdateAddress; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化 Bmob SDK ,并将第二个参数appKey替换成你在Bmob服务器端创建的应用key Bmob.initialize(this, "14fcb34593937578a18862a1b33f29a1"); mName=(EditText) findViewById(R.id.id_name); mAddress=(EditText) findViewById(R.id.id_address); mQueryName=(EditText) findViewById(R.id.id_queryName); mUpdateAddress=(EditText) findViewById(R.id.id_updateAddress); } /** * 添加数据 * 通过Person对象提交数据到云服务中保存数据 */ public void submit(View v){ String name=mName.getText().toString(); String address=mAddress.getText().toString(); if(name.equals("")||address.equals("")){ return; } //保存数据 Person p=new Person(); //传入Feedback对象(相当于在表中新增一条数据) p.setName(name); p.setAddress(address); p.save(MainActivity.this,new SaveListener() { public void onSuccess() { Toast.makeText(MainActivity.this, "submit success", Toast.LENGTH_LONG).show(); } public void onFailure(int code, String msg) { Toast.makeText(MainActivity.this, "submit failure", Toast.LENGTH_LONG).show(); } }); } /** * 查询所有数据 * @param v */ public void queryAll(View v){ BmobQuery<Person> query=new BmobQuery<Person>(); query.findObjects(MainActivity.this, new FindListener<Person>() { public void onSuccess(List<Person> persons) { AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("Query"); String str=""; for(Person person : persons){ str+=person.getName()+":"+person.getAddress()+"\n"; } builder.setMessage(str); builder.create().show(); } public void onError(int code, String msg) { } }); } /** * 查询单条数据 * @param v */ public void queryPerson(View v){ String str=mQueryName.getText().toString(); if(str.equals("")){ return; } BmobQuery<Person> query=new BmobQuery<Person>(); query.addWhereEqualTo("name", str);//增加条件 query.findObjects(MainActivity.this, new FindListener<Person>() { public void onSuccess(List<Person> persons) { AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("Query"); String str=""; for(Person person : persons){ str+=person.getName()+":"+person.getAddress()+"\n"; } builder.setMessage(str); builder.create().show(); } public void onError(int code, String msg) { } }); } /** * 修改数据 */ public void update(View v){ String str=mUpdateAddress.getText().toString(); if(str.equals("")){ return; } //更新Person表里面id为bce7d5e372的数据 Person p=new Person(); p.setAddress(str); p.update(this, "bce7d5e372", new UpdateListener() { public void onSuccess() { Toast.makeText(MainActivity.this, "update success", Toast.LENGTH_LONG).show(); } public void onFailure(int code, String msg) { Toast.makeText(MainActivity.this, "update failure", Toast.LENGTH_LONG).show(); } }); } /** * 删除数据 * @param v */ public void delete(View v){ Person p=new Person(); p.setObjectId("bce7d5e372"); p.delete(MainActivity.this, new DeleteListener() { public void onSuccess() { Toast.makeText(MainActivity.this, "delete success", Toast.LENGTH_LONG).show(); } public void onFailure(int code, String msg) { Toast.makeText(MainActivity.this, "update failure", Toast.LENGTH_LONG).show(); } }); } }
在AndroidMainfest.xml文件:
<!-- Bmob SDK权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" />
Take your time and enjoy it 要原码的、路过的、学习过的请留个言,顶个呗~~