【Android入门到项目实战-- 11.5】—— bmob后端云数据库批量获取表中数据

 如图,下面实现批量获取Home表中的所有行的字段。

【Android入门到项目实战-- 11.5】—— bmob后端云数据库批量获取表中数据_第1张图片

准备工作

引入依赖

    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

    
    
    
    
    
    
    
    
    
    
    


        
    

创建表类

        需要创建和数据表对应的类,注意类名必须和数据表名相同,变量名必须和表中的字段名相同。

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 bmobList = new ArrayList<>();//保存表中的每行
    private List textList = new ArrayList<>();//配文列表
    private List videoList = new ArrayList<>();//视频列表
    private List dateList = new ArrayList<>();//日期列表
    private List lookviewList = new ArrayList<>();//浏览量列表
    private List commentList = new ArrayList<>();//评论列表
    private List likeList = new ArrayList<>();//点赞列表

获取数据:

        list.get(i)得到的是表中每一行的字段列表,添加到bmobList列表中;bmobList.get(i).getXXX是每一行的字段。(不知为何列表中存放的值只在查询方法里有效,所以需要把用到这些列表的方法方法查询方法里)

    private void bmobInit(){
        BmobQuery bmobQuery = new BmobQuery();
        bmobQuery.findObjects(new FindListener() {
            @Override
            public void done(List 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();
                }
            }
        });
    }

 

你可能感兴趣的:(Android,android,android,studio,数据库,bmob)