目标效果:
根据提示输入name和feedback,点击提交,会提示保存成功,点击查询所有数据,会使用对话框弹出表中所有信息,输入name点击查询单挑数据,可以查询指定数据。
1.首先在bmob.cng官网进行注册,注册后进入后台,点击左上角创建应用。
2.创建好应用后,点击应用名称,选择设置,可以看到四个id。
3.打开下载页面,下载SDK。
4.下载好SDK后解压,会发现有两个文件夹,一个是libs,一个是Demo,libs中的所有文件复制到Android项目libs文件夹中。
5.右击Android项目,选择Properties-Java Build Path-Libraries,点击Add JARs...,加入刚才添加到libs文件夹中的四个jar包。
6.SDK设置完毕,开始编写代码。
7.新建feedback.java页面作为实体类页面,程序运行会在bmob服务器中新建该实体类对应的数据表。
package com.example.bean;
import cn.bmob.v3.BmobObject;
public class feedback extends BmobObject{
private String name;
private String feedback;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
}
8.activity_main.xml页面设置输入和查询布局。
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"
tools:context=".MainActivity" >
<Button
android:id="@+id/QueryOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/QueryAll"
android:layout_alignParentBottom="true"
android:onClick="queryOneData"
android:layout_marginBottom="40dp"
android:text="查询单条记录" />
<EditText
android:id="@+id/query_et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/QueryOne"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="26dp"
android:hint="name"
android:ems="10" />
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/query_et"
android:layout_centerHorizontal="true"
android:layout_marginBottom="93dp"
android:onClick="submit"
android:text="提交" />
<EditText
android:id="@+id/feedback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/name"
android:ems="10"
android:hint="Feedback"
android:lines="3" >
<requestFocus />
</EditText>
<Button
android:id="@+id/QueryAll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/query_et"
android:layout_centerHorizontal="true"
android:layout_marginBottom="18dp"
android:onClick="queryData"
android:text="查询全部记录" />
<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="28dp"
android:ems="10"
android:hint="Your Name" />
</RelativeLayout>
9.MainActivity.java页面进行保存和查询数据。
MainActivity.java页面:
package com.example.bmobtest;
import java.util.List;
import com.example.bean.feedback;
import cn.bmob.push.BmobPush;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobInstallation;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;
import android.app.AlertDialog;
public class MainActivity extends Activity {
private EditText mName,mFeedback,mQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bmob.initialize(this,"8ef8a4752f48682eadb32d3c8c8e398f"); //加载Bmob SDK,参数为bmob服务器中新建应用的Application ID
mName=(EditText) findViewById(R.id.name);
mFeedback=(EditText) findViewById(R.id.feedback);
mQuery=(EditText) findViewById(R.id.query_et);
}
//提交数据
public void submit(View view){
String name=mName.getText().toString();
String feedback=mFeedback.getText().toString();
if(name.equals("")||feedback.equals(""))
return;
feedback feedbackObj=new feedback(); //实例化实体类
feedbackObj.setName(name); //封装数据
feedbackObj.setFeedback(feedback);
feedbackObj.save(MainActivity.this,new SaveListener() { //向服务器保存数据
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"submit success",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int arg0, String arg1) {
Toast.makeText(MainActivity.this,"submit failure",Toast.LENGTH_SHORT).show();
}
});
}
//查询所有数据
public void queryData(View view){
BmobQuery<feedback> query=new BmobQuery<feedback>();
query.findObjects(MainActivity.this,new FindListener<feedback>() {
@Override
public void onSuccess(List<feedback> feedbacks) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //定义dialog,显示查询信息
builder.setTitle("Query");
String str=""; //存储查询结果
for(feedback feed:feedbacks)
str+=feed.getName()+","+feed.getFeedback()+"\n";
builder.setMessage(str);
builder.create().show();
}
@Override
public void onError(int arg0, String arg1) {
}
});
}
//查询单条数据
public void queryOneData(View view){
String str=mQuery.getText().toString();
if(str.equals(""))
return;
BmobQuery<feedback> query=new BmobQuery<feedback>();
query.addWhereEqualTo("name",str); //条件查询,传进去要查询的name
query.findObjects(MainActivity.this,new FindListener<feedback>() {
@Override
public void onSuccess(List<feedback> feedbacks) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //定义dialog,显示查询信息
builder.setTitle("Query");
String str=""; //存储查询结果
for(feedback feed:feedbacks)
str+=feed.getName()+","+feed.getFeedback()+"\n";
builder.setMessage(str);
builder.create().show();
}
@Override
public void onError(int arg0, String arg1) {
}
});
}
}
10.AndroidManifest.xml页面添加以下权限。
<!-- 允许联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取wifi网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 获取sd卡写的权限,用于文件上传和下载 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 允许读取手机状态 用于创建BmobInstallation -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
11.打开服务器进入数据库,可以发现新建了一张表,并且数据成功添加。
12.运行就可以显示目标效果了。