【Android入门到项目实战-- 11.5】—— bmob后端云数据库批量获取表中数据
Android与bmob后端云数据库的使用,如何从bmob中批量获取表中数据?
·
如图,下面实现批量获取Home表中的所有行的字段。
准备工作
引入依赖
implementation 'io.github.bmob:android-sdk:3.8.21'
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'com.squareup.okio:okio:2.2.2'
implementation 'com.google.code.gson:gson:2.8.5'
AndroidManifest.xml文件添加:
申请权限和创建provider
<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" />
<application
....
<activity
....
<provider
android:name="cn.bmob.v3.util.BmobContentProvider"
android:authorities="com.example.ufcfans.BmobContentProvider">
</provider>
</application>
创建表类
需要创建和数据表对应的类,注意类名必须和数据表名相同,变量名必须和表中的字段名相同。
public class Home extends BmobObject {
private String text;
private String video;
private Integer lookview;
private Integer comment;
private Integer like;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getVideo() {
return video;
}
public void setVideo(String video) {
this.video = video;
}
public Integer getLookview() {
return lookview;
}
public void setLookview(Integer lookview) {
this.lookview = lookview;
}
public Integer getComment() {
return comment;
}
public void setComment(Integer comment) {
this.comment = comment;
}
public Integer getLike() {
return like;
}
public void setLike(Integer like) {
this.like = like;
}
}
Activity或Fragment中使用
初始化bmob:
Bmob.initialize(getActivity(), "keyID");
定义列表保存数据:
private List<Home> bmobList = new ArrayList<>();//保存表中的每行
private List<String> textList = new ArrayList<>();//配文列表
private List<String> videoList = new ArrayList<>();//视频列表
private List<String> dateList = new ArrayList<>();//日期列表
private List<Integer> lookviewList = new ArrayList<>();//浏览量列表
private List<Integer> commentList = new ArrayList<>();//评论列表
private List<Integer> likeList = new ArrayList<>();//点赞列表
获取数据:
list.get(i)得到的是表中每一行的字段列表,添加到bmobList列表中;bmobList.get(i).getXXX是每一行的字段。(不知为何列表中存放的值只在查询方法里有效,所以需要把用到这些列表的方法方法查询方法里)
private void bmobInit(){
BmobQuery<com.example.ufcfans.bmob.Home.Home> bmobQuery = new BmobQuery<com.example.ufcfans.bmob.Home.Home>();
bmobQuery.findObjects(new FindListener<com.example.ufcfans.bmob.Home.Home>() {
@Override
public void done(List<com.example.ufcfans.bmob.Home.Home> list, BmobException e) {
if(e==null){
for(int i = 0; i < list.size();i++){
bmobList.add(list.get(i));
}
for(int i = 0; i < bmobList.size();i++){
textList.add(bmobList.get(i).getText());
videoList.add(bmobList.get(i).getVideo());
lookviewList.add(bmobList.get(i).getLookview());
commentList.add(bmobList.get(i).getComment());
likeList.add(bmobList.get(i).getLike());
dateList.add(bmobList.get(i).getUpdatedAt());
}
}else{
Toast.makeText(getActivity(),"加载失败",Toast.LENGTH_SHORT).show();
}
}
});
}
更多推荐
已为社区贡献4条内容
所有评论(0)