0%

安卓开发:具有天气预报功能的记事本APP (二)天气预报

1

接上文

安卓开发:具有天气预报功能的记事本APP (一)记事本

天气功能 Weather forecast function

XML文件:activity_weather和weather_item。

activity_weather是天气界面的布局,上方为一个actionBar,actionbar中有返回主页按钮、“天气”字样,下方为一个textView和一个ListView,textView显示当前城市,ListView用于存放天气相关信息。

Weather_item中有五个TextView,分别用来存放date,text_day,text_night,high,low。(日期,晨间天气,夜间天气,最高气温,最低气温)

Java文件:WeatherInfo Weather JsonParser

WeatherInfo中写了date,text_day,text_night,high,low六个属性的setter和getter。

JsonParser用于解析心知天气api的信息

使用到的API接口:

在WeatherInfo中,有city,date,text_day,text_night,high,low六个属性,以及setter
getter函数,这六个属性是要从seniverse心知天气这个api中获得的属性。

在JsonParser中,创建一个arrayList,用于填入天气的相关信息。创建WeatherInfo类变量weatherInfo,并设置weatherInfo的city属性,根据不同的city调用api,并通过JsonArray、JSONObject来解析api中的信息,并获得该城市的date,
text_day,text_night,high,low。

获得JsonArray后,通过遍历,取出的每一个元素都是JsonObject对象,每个JsonObject对象里都会包含date,text_daty,text_night,high,low数据,调用getString即可取出这些数据。

在weather中,设定的默认city为beijing,并将city填于url中,利用心知天气的链接获取北京的天气数据,并将数据以String的形式填入arrayList。

这里我们使用了HttpURLConnection发起HTTP请求,并解析服务器返回的数据

Weather的内部类Adapter继承了BaseAdapter,在getView函数中,使用inflate找到weather_item,并通过findViewById函数,获取date,text_day,text_night,high,low的TextView,再将arrayList中的数据利用setText传入TextView中显示。

-------------本文结束感谢您的阅读-------------