Android高德之旅(15)天气查询废话简介总结

废话

说到吃饭...呸,说到天气,其实这个并不属于地图或者导航的范畴,为什么高德要提供天气查询呢?两个字:讲究。天气查询可以用来改善app体验的功能,如:在跑步类app中加入天气的提醒;或者出去自驾游提前知道要下雨,就可以造作准备,是不是很贴心。

简介

天气查询的请求参数类为 WeatherSearch,city(城市)为必设参数,type(气象类型)为可选,包含有两种类型:WEATHER_TYPE_LIVE为实况天气;WEATHER_TYPE_FORECAST为预报天气,默认为 实况天气。

WeatherSearchQuery query = new WeatherSearchQuery("北京", WeatherSearchQuery.WEATHER_TYPE_LIVE);
WeatherSearch weathersearch=new WeatherSearch(this);
weathersearch.setOnWeatherSearchListener(new WeatherSearch.OnWeatherSearchListener() {
        @Override
        public void onWeatherLiveSearched(LocalWeatherLiveResult liveResult, int i) {
            
        }

        @Override
        public void onWeatherForecastSearched(LocalWeatherForecastResult forecastResult, int i) {

        }
    });
weathersearch.setQuery(query);
weathersearch.searchWeatherAsyn();

代码超级简单,关键来看两个回调,第一个回调是实况天气,第二个回调是预报天气,先来看第一个。

@Override
public void onWeatherLiveSearched(LocalWeatherLiveResult result, int i) {
    LocalWeatherLive liveResult = result.getLiveResult();
    liveTimeTxt.setText(liveResult.getReportTime()); //时间
    liveWeatherTxt.setText(liveResult.getWeather()); //气象
    liveTemperatureTxt.setText(liveResult.getTemperature() + "°C"); //温度
    liveWindDirectionTxt.setText(liveResult.getWindDirection()); //风向
    liveWindPowerTxt.setText(liveResult.getWindPower() + "级"); //风力
    liveHumidityTxt.setText(liveResult.getHumidity() + "%"); //湿度
}

通过返回数据,我们可以获得丰富的天气情况,包括气温,气象,风向,风力,湿度,城市等等。

再来看第二个回调,预报天气,这里会返回未来四天的天气,而且这里的数据分为白天和夜晚,是不是很丰富。

@Override
public void onWeatherForecastSearched(LocalWeatherForecastResult result, int i) {
    LocalWeatherForecast forecastResult = result.getForecastResult();
    forecastTimeTxt.setText(forecastResult.getReportTime());
    List<LocalDayWeatherForecast> weatherForecast = forecastResult.getWeatherForecast();

    List<Forecast> forecastList = new ArrayList<>();
    for (LocalDayWeatherForecast forecast : weatherForecast) {
        String dayWeather = forecast.getDayWeather(); //白天天气
        String dayTemp = forecast.getDayTemp(); //白天温度
        String dayWindDirection = forecast.getDayWindDirection(); //白天风向
        String dayWindPower = forecast.getDayWindPower(); //白天风力
        String nightWeather = forecast.getNightWeather(); //夜晚天气
        String nightTemp = forecast.getNightTemp(); //夜晚温度
        String nightWindDirection = forecast.getNightWindDirection(); //夜晚风向
        String nightWindPower = forecast.getNightWindPower(); //夜晚风力

        forecastList.add(new Forecast(dayWeather, dayTemp, dayWindDirection, dayWindPower,
                nightWeather, nightTemp, nightWindDirection, nightWindPower));
    }

    ForecastAdapter adapter = new ForecastAdapter(this, forecastList);
    forecastListView.setAdapter(adapter);
}

我们把数据解析成一个List<Forecast> forecastList,然后用ListView展示出来。

总结

天气就说这么多,本期节目就到这里,感谢大家收看,我们下期再见~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏swag code

荷兰国旗-快排应用

”荷兰国旗难题“是计算机科学中的一个程序难题,它是由Edsger Dijkstra提出的。荷兰国旗是由红、白、蓝三色组成的。

972
来自专栏小詹同学

Python系列之六——拿什么拯救你?我的大脑

我一定是智障了,话不多说,上图上图~ ? 就是这样10个选择题,你没有看错,我一定是个智障了~佩服不用穷举,也不用参考网上的大...

3704
来自专栏专知

【LeetCode 136】 关关的刷题日记33 Intersection of Two

关关的刷题日记33 – Leetcode 349. Intersection of Two Arrays 题目 Given two arrays, write ...

2975
来自专栏ACM小冰成长之路

HDU-6008-Worried School

ACM模版 描述 ? 题解 简单的模拟题,题意不是特别容易翻译,但是模拟的规则十分简单,和 WFWF 晋级资格相似,大致是一共 X+Y=GX + Y = G 个...

2048
来自专栏ml

hdu----(4522)湫湫系列故事——过年回家(最短路)

湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K...

2916
来自专栏数据结构与算法

生理周期POJ 1006

Description 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会...

2767
来自专栏数据结构与算法

BZOJ1569: [JSOI2008]Blue Mary的职员分配(dp 暴力)

1405
来自专栏数据结构与算法

奖金

【问题描述】   由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年...

3658
来自专栏HansBug's Lab

3631: [JLOI2014]松鼠的新家

3631: [JLOI2014]松鼠的新家 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 707  Solv...

2786
来自专栏斑斓

迪米特法则与重构

在面向对象设计的世界里,有一个寻常却又常常为人所忽略的原则——“迪米特(Law of Demeter)”法则。这个原则认为,任何一个对象或者方法,它应该只能调用...

1156

扫码关注云+社区

领取腾讯云代金券