#Android 示例与教程
失物招领案例教程
需求描述
为演示Bmob提供的云数据库的功能,本文制作了一个失物招领的简单案例,实现物品的发布、修改、呈现和删除,展示如何使用Bmob快速开发一个有后端数据库的应用软件。使用场景如下:用户捡到物品,打开手机软件,填写物品的招领信息(标题、描述和联系方式);用户丢失物品,打开手机软件,填写物品的丢失信息(标题、描述和联系方式);任何人都可以查看到失物和招领的信息列表,可以对发布的信息进行删除。
说明一点的是,因为是演示案例,所以信息的添加和删除并没有进行用户身份验证。
本案例将使用到Bmob的如下功能:
1、 添加数据
添加失物/招领信息到服务器中。
2、 查找数据
在列表中显示所有用户发布的失物/招领信息。
3、 删除数据
删除已发布的失物/招领信息。
本案例最终实现的部分界面效果如下:
失物招领软件闪图
招领列表页
失物编辑删除功能
添加失物信息
数据结构设计
本案例的数据结构非常简单,只需要设计两个表,一个是失物表(Lost表),一个是招领表(Found表),对应的数据结构如下(省略对常用默认字段objectId、createAt、updateAt的描述,对于还不知道怎么创建应用和添加数据表的开发朋友请先移步快速入门指南查看相关教程):
失物表(Lost)字段名
类型
描述
describe
String
失物的描述信息
phone
String
联系的手机号码
title
String
失物的标题信息
招领表(Found)字段名
类型
描述
describe
String
招领的描述信息
phone
String
联系的手机号码
title
String
招领的标题信息
初始化SDK
Bmob为每个应用都提供了一个唯一标识(对应为开发者后台应用中的“应用密钥->Application ID”),使用Bmob开发的应用都要首先使用这个Application ID”进行初始化。对应代码如下(详细代码实现参看BaseActivity类):protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化 Bmob SDK,第一个参数为上下文,第二个参数为Application ID
Bmob.initialize(this, Constants.Bmob_APPID);
//其他代码
}
创建数据模型类
为操作Bmob的云端数据库,SDK首先需要创建数据表对应的模型类(模型类的名称必须和云端数据表的名称一致),该类需要继承自BmobObject,实现刚刚创建的数据表字段的set和get方法(系统默认字段objectId、createAt、updateAt不需要声明)。因为本案例需要操作Lost表和Found表,因此需要创建Lost类和Found类。下面是Lost模型类的实现代码(Found模型类的实现代码略):public class Lost extends BmobObject{
private String title;//标题
private String describe;//描述
private String phone;//联系手机
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
添加失物/招领信息
用户填写了失物信息之后,只需要构造一个Lost实例,然后简单调用模型类的insertObject方法(第一个参数是上下文,第二个参数是插入信息的回调类)就可以将信息添加到云数据库中,实现代码如下(详细代码实现参看AddActivity类):Lost lost = new Lost();
lost.setDescribe(describe);
lost.setPhone(photo);
lost.setTitle(title);
lost.save(this, new SaveListener() {
@Override
public void onSuccess() {
ShowToast("失物信息添加成功!");
//其他代码
}
@Override
public void onFailure(int code, String arg0) {
ShowToast("添加失败:"+arg0);
}
});
获取失物/招领列表
Bmob提供了复杂和简单的查询方法,可以对查询结果进行排序,可以对结果进行缓存。本案例只使用到Bmob提供的最简单的查询和排序功能&