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了大笑    至於爲何會解決呢.....還在研究中  


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