天气预报app代码(android天气预报程序源码)

天气预报app代码(android天气预报程序源码)先看下 app 效果图 nbsp nbsp nbsp nbsp nbsp App 介绍 首次启动应用时列表显示全国 34 个省份及直辖市包括港澳台 如果选择省份进入所在省份下的市列表 如果再选择市项进入该市下所有的区或县 包括该市 列表 如果再选择该列表下的项就显示该区域的天气预报界面 图 5 从左滑出侧边栏可以选择其他城市 如果是非首次启动

大家好,我是讯享网,很高兴认识大家。



先看下app效果图:

android 第一行代码 天气预报项目 基于android的天气预报app_android
讯享网

android 第一行代码 天气预报项目 基于android的天气预报app_xml_02

android 第一行代码 天气预报项目 基于android的天气预报app_xml_03

android 第一行代码 天气预报项目 基于android的天气预报app_ci_04

android 第一行代码 天气预报项目 基于android的天气预报app_xml_05

        App介绍:首次启动应用时列表显示全国34个省份及直辖市包括港澳台,如果选择省份进入所在省份下的市列表,如果再选择市项进入该市下所有的区或县(包括该市)列表,如果再选择该列表下的项就显示该区域的天气预报界面。图5从左滑出侧边栏可以选择其他城市。如果是非首次启动,则显示上次选择的城市天气预报界面(比如退出时显示广州的天气预报界面即图4,再次进入时仍显示该界面)。

具体app功能实现:

1.获取全国城市列表(图1到图3)

       想罗列出中国所有的省份,只需要访问地址:http://guolin.tech/api/china,服务器会返回一段JSON格式的数据,包含中国所有省份名称以及省份id。如果想知道某个省份内有哪些城市,比如江苏的id是16,访问地址:http://guolin.tech/api/china/16。只需要把省份id添加到url地址的最后面即可。比如苏州的id是116,那么想知道苏州下有哪些县和区的时候,访问地址:http://guolin.tech/api/china/16/116。如此类推。

     本app使用DataSupport这款开源的数据库框架进行城市查询,需要在app下的build.gradle导入:

在清单文件中的application节点中加入:

此外还需要在assets目录下新建litepal.xml,构建名为weather_db的数据库,分别构建Province、City、County三张表。

对于省份、城市、区或县进行数据库查询,则这些实体类需要继承自DataSupport:

 

访问服务器,所以需要在清单文件加入访问网络的权限:

 主程序布局仅由一个fragment组成,该fragment的布局由一个自定义的标题栏和一个listview组成:

activity_main.xml

 fragment的布局choose_area.xml

 城市列表显示界面ChooseAreaFragment,本文使用okhttp进行网络请求,所以需在build.gradle添加:

该fragment的代码及分析如下: 

该fragment涉及的工具类如下:

 2.获取城市天气预报

android 第一行代码 天气预报项目 基于android的天气预报app_ci_06

      本文使用和风天气平台提供的天气数据来源,关于如何使用该平台获得城市天气预报情况,可以参考Android 获取实时天气数据,在这就不多加赘述。

      每次启动应用时,先去检查SharedPreference中保存键为”weather”的值(即和风天气需要获取天气情况的城市代码)是否为空,如为空,显示城市列表fragment即ChooseAreFragment,如不为空,则将该值通过Intent传递给城市天气预报界面WeatherActivity,并启动该Activity。

该WeatherActivity界面背景使用必应服务器提供的图片,使用Glide三方框架加载缓存的背景图片,代码及分析如下:

app的build.gradle中需要导入:

以上就是整个app的具体介绍,具体思路大概是先通过DataSupport获取远程服务器上的城市列表,然后通过和风天气平台获取选中的城市天气预报及空气质量指数等。

最后附上WeatherActivity的相关布局文件代码:

activity_weather:

title.xml:

now.xml:

forecast.xml:

 forecast_item.xml:

 aqi.xml:

suggestion.xml:

小讯
上一篇 2025-05-05 17:12
下一篇 2025-06-15 18:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/155664.html