今天是自两个月自学之后第一次写博客,走过的大神不要喷我,但一定要给我建议啊!!! 之前在网上找到了一个开放平台--Mob,之后发现发现它的API用起来挺简洁的,而且客服也很有礼貌,哈哈!话不多说了,接下来介绍MobAPI的天气服务。(MobAPI的官网:http://www.mob.com/#/)主要步骤如下: 1.先导入jar包  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); }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/63284.html