Android之与Bomb对接后拿不到数据

  前段时间做了一个Demo,里面我尝试使用了一下Bmob后端云 ,  但是在Web填充好数据后发现并不能成功拿到数据。纠缠一段时间后成功的解决。

  话不多说, 第一步 导入Bmob依赖  在AndroidStudio中 : 进入后左侧点选SDK导入

                    第二步 (1)检查自己的JavaBean是否和后端的一致

                               (2)检查是否继承了BmobObject或BmobUser

                    第三步 记得要获取到与Bmob的连接 

                               

  //提供以下两种方式进行初始化操作:

        //第一:默认初始化
        Bmob.initialize(this, "Your Application ID");
        // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能
        //Bmob.initialize(this, "Your Application ID","bmob");  其实用这个就可以了

        //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
        //BmobConfig config =new BmobConfig.Builder(this)
        ////设置appkey
        //.setApplicationId("Your Application ID")
        ////请求超时时间(单位为秒):默认15s
        //.setConnectTimeout(30)
        ////文件分片上传时每片的大小(单位字节),默认512*1024
        //.setUploadBlockSize(1024*1024)
        ////文件的过期时间(单位为秒):默认1800s
        //.setFileExpiration(2500)
        //.build();
        //Bmob.initialize(config);
    }

  然后 就是获取数据的时候了,我当时想法就是只用个List存储数据,传给适配器就ok了,但是......

  每次都存储不到List中..  经过Log发现都可以获取到,可是存储不到集合中..

于是乎 奉上解决方法:  

  我改用Map存放从后端搜索到的data ,用List存放该Map

private HashMap<String,String >mHashMap;
private List<Map<String,String>> mapList;

下面这是搜索并存到集合中( //Glide什么的可以自动忽略  ==)

mapList = new ArrayList<>();
        query = new BmobQuery<Book>();
        query.addWhereEqualTo("author_name", authorName);
        query.findObjects(new FindListener<Book>() {
            @Override
            public void done(List<Book> list, BmobException e) {
                if(e==null){
                    initArray(list.size());
                    for (Book book : list) {
                        mHashMap = new HashMap<>();
                        mHashMap.put("bookName",book.getBookName());
                        mHashMap.put("authorName",book.getAuthor_name());
                        mHashMap.put("imageUrl",book.getBook_image().getFileUrl());
                        Glide.with(context).load(book.getBook_image().getFileUrl()).preload();//预先缓存
                        mHashMap.put("bookClass",book.getBookClass());
                        mHashMap.put("bookIntro",book.getIntro());
                        mapList.add(mHashMap);
                    }
  于是莫名其妙的可以已存储了  

  然后你就可以拿着list发给Adapter了大笑    至于为何会解决呢.....还在研究中  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章