【Android入门到项目实战-- 11.5】—— 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<>();//点赞列表

获取数据:

扫描二维码关注公众号,回复: 15337006 查看本文章

        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();
                }
            }
        });
    }

猜你喜欢

转载自blog.csdn.net/Tir_zhang/article/details/130835926
今日推荐