使用MobAPi获得天气数据

来源:互联网 发布:广州汇丰软件 编辑:程序博客网 时间:2024/06/06 03:59
 今天是自两个月自学之后第一次写博客,走过的大神不要喷我,但一定要给我建议啊!!! 之前在网上找到了一个开放平台--Mob,之后发现发现它的API用起来挺简洁的,而且客服也很有礼貌,哈哈!话不多说了,接下来介绍MobAPI的天气服务。(MobAPI的官网:http://www.mob.com/#/)主要步骤如下: 1.先导入jar包 ![三个jar包](http://img.blog.csdn.net/20160424212816167) 2.初始化
SDK`MobAPI.initSDK(MainActivity.this,APP_KEY_Mob);
 第一个参数为context,第二个参数为申请的key 3.集成APICallback接口
     `public class MainActivity extends AppCompatActivity implements APICallback`
 4.获取工具类,每个工具类对应一个服务,例如Mobile:手机查询地址方面的服务,Wheather:查询天气的工具类。这里需先获取,之后使用工具类查询天气。
Weather api = (Weather) MobAPI.getAPI(Weather.NAME);
 5.接下来就可以用该工具类实例化的对象进行查询各个地区的天气了(这也是我喜欢用这个SDK的原因,两个子--简单),第一个参数为要查询的天气,这里我把他写死了,方便查看效果;第二个参数为APICallback接口的实例,这里写this就好了啊
  api.queryByCityName("香港", this);
6.当让Activity继承APICallback接口之后,会复写它的两个方法,一个是onSuccess,另一个是onError,具体意思也是它字面上的意思,就是查询成功后执行的方法,另一个是查询失败时的方法。
    @Override    public void onError(API api, int i, Throwable throwable) {        Toast.makeText(this,"异常", Toast.LENGTH_SHORT).show();    }
  @Override    public void onSuccess(API api, int i, Map<String, Object> map) {        switch (i) {            case Weather.ACTION_QUERY: onWeatherDetailsGot(map);        }    }
 这里的onSuccess里为什么要用switch语句呢?主要是因为(自己的猜想。。)MobAPI推荐的是一键式调用所有的API,所以这里的动作i可能会各不相同,但是都是相同的代码,继承接口使用工具类......所以用switch来区别各个操作吧。这里的onWheatherDetailGot(map)是对请求成功所获得的数据(map),进行相关的操作  7.我这里用这些天气数据做了一个动态改变RelativeLayout的背景,(方法比较简单粗俗,大神不要喷我),至于返回的map结构可以去mob官网看看
   private void onWeatherDetailsGot(Map<String, Object> result) {        RelativeLayout layout= (RelativeLayout) findViewById(R.id.menu_top);        @SuppressWarnings("unchecked")        ArrayList<HashMap<String, Object>> results = (ArrayList<HashMap<String, Object>>) result.get("result");        HashMap<String, Object> weather = results.get(0);        String wheather_local=com.mob.tools.utils.R.toString(weather.get("weather"));        if (wheather_local.contains("雨")){            if (layout != null) {                layout.setBackgroundResource(R.drawable.xiayu);            }        }        else if (wheather_local.contains("阴")){            if (layout != null) {                layout.setBackgroundResource(R.drawable.yintian);            }        }        txt_wheather.setText(wheather_local);    }
2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃阿胶上火了该怎么办 胎儿胼胝体发育不良怎么办 鸡眼看到硬芯了怎么办 小脚趾起茧子疼怎么办 脚起老茧很痛怎么办 化疗后骨髓抑制严重怎么办 胃炎引起的胃胀怎么办 胃病胀肚子很鼓怎么办 小孩淋巴结发炎肚子疼痛怎么办 顺产后子宫脱垂怎么办 顺产完子宫脱垂怎么办 额头长了个鱼鳞怎么办 脸上长了很多痣怎么办 做过狐臭的疤痕怎么办 痤疮留下的红印怎么办 脸上疤掉了黑印怎么办 脸上有黑色的疤怎么办 一只眼睛外斜视怎么办 残币银行不给换怎么办 手上有多套房的怎么办 长了两层脚指甲怎么办 指甲长了两层怎么办 脚趾甲长了两层怎么办 产妇气血虚没奶怎么办 哺乳期气血不足奶水少怎么办 刚怀孕喝了啤酒怎么办 受风怎么办最快最有效 孕妇后背受风了怎么办 肩膀和后背受风怎么办 手指关节杵肿了怎么办 骨关节退行性变怎么办 疼风脚趾肿了怎么办 痛风脚右侧肿了怎么办 痛风引起的脚肿怎么办 老人腰闪了该怎么办 腰闪了站不起来怎么办 又怕冷又爱上火怎么办 肝上多发小囊肿怎么办 5岁宝宝咳嗽厉害怎么办 5岁宝宝咳嗽有痰怎么办 生川乌外贴中毒怎么办