天气预报

创作不易,可否给作者点个赞再走


临近期末,Android需要交作业所以做了一个比较简单的app,小白勿喷

涉及知识点

容器类布局RelativeLayout,LinearLayout

基础控件的绘制和使用

TextView:显示文本内容
ImageView;设置图片
Button:按钮
EditText:接受客户输入内容

复杂控件的绘制和使用

lIstView:显示列表数据控件,使用设配器填充内部内容
 BaseAdapter的使用通知适配器,数据更新方式设置点击监听
GridView:显示网格数据控件:与listview相同
ViewPager:可左右滑动,包含多个view或者fragment的控件
 FragmentStateAdapter使用需要网页发生变化时,提示适配器更新设置滑动图标指示器设置滑动监听
GardView:androidX包含的控件,用于LIst View的每一个item的容器类布局,可制作卡片式效果,包含自带属性,需要导入appNs域名

Activity

创建、绑定布局
生命周期
跳转与传值

Fragment

加载进入viewPager的方式
Activity向Fragment的传值方式

数据储存

数据库操作
SQLiteOpenHelper的创建和使用
SQLiteDatebase函数的使用
创建表、增删改查
共享参数存储
数据获取、存储
切换页面壁纸

第三方框架

XUtils:封装完善的多功能框架,本项目用于网络获取数据功能
Gson:解析json数据的框架

界面展示

软件功能前期分析

1.根据天气预报接口,获取网络数据
2.展示选择城市的天气情况,温度,风向,各种数据以及未来基本天气情况
3.将网络获取的城市天气信息保存到数据库中,便于无网络进行数据请求
4.对数据库中的城市天气进行增删改查
5.根据LocationManager api获取当前位置位置经纬度,再通过全球逆地理编码api获取网络数据,进而解析出当前所在位置信息

难点分析

1.动态添加VIewPager对应小圆点指示器
切换界面时,刷新数据库数据
3.返回主界面时,改变ViewPager数据源页面的功能
4.改变首页背景图片
5.获取当前位置并显示在主页面

页面切换逻辑

1.应用启动时,进入主界面,拓攻获取数据库的城市信息,获取网络数据,展示在Fragment中,在View Pager中滑动,点击加号按钮,跳转城市管理页面,点击更多页面,跳转更多按钮,跳转设置页面
2.城市管理页面,展示数据库存储的城市天气最新信息列表,点击返回按钮,返回上一级页面,点击加号按钮,跳转搜索更多城市界面,点击编辑按钮,跳转删除城市界面
3.搜索更多界面城市界面,网络展示热门城市名称,点击期中每一项,可跳转主界面,在主界面显示增加的城市信息,也可输入城市名称,点击搜索按钮,判断是否存在该城市信息,存在跳转主页面展示信息,否则提示用户重新输入
4.删除城市页面,展示数据库存储的城市名称列表,点击每一项的垃圾同按钮,可从数据库中删除记录,点击错号,弹出提示器,点击对号,从数据库删除操作的记录,并返回上一级城市管理界面,并且上一级页面也是显示删除后的数据信息,在返回上一级主界面,显示依然为操作后剩余的城市信息
更多设置界面,包含功能,更改背景颜色,清楚缓存数据,获取版本号,分享软件等操作

所使用的天气预报接口为https://www.juhe.cn/docs/index/otherid/1

免费一天一百次,建议自己申请一个,个人经验有时候调试一百次根本不够用,请求不到数据时会闪退,可以在数据库里存入上一次的数据,但是次数用完了就不能实时更新;
**

我申请的key同时用的人太多啦已经不能用了,有需要的好兄弟自己申请一个吧

更新:有好兄弟反映说这个聚合的天气接口免费版一天只能用10次。。。我哭了哈哈,以前白嫖的一天还能用100次,太久没维护了,怪不得安装在我自己手机上的也用不了了。没办法有需要的好兄弟只能另寻其他的接口了。换个接口而已其他都一样的。

在util包的URLUtils.class中将key换成你自己申请的就行

**

或者可以改用腾云天气:https://wis.qq.com/weather/common?source=pc&weather_type=observe|index|rise|alarm|air|tips|forecast_24h&province=广西省&city=桂林市

免费不限次数,但是有个鸡肋的点,请求数据需要加上省份。
跟着老师做了两个版本,上传的是使用聚合api版本

在老师的版本上加上了定位的功能

源码:https://gitee.com/shidulin/weather_app.git
参考:https://www.bilibili.com/video/BV1QE411i7oQ
百度云:
链接:https://pan.baidu.com/s/1DpFrXvNf888zX_GnIkB-0g
提取码:dda2

**

聚合天气的版本用不了了,腾讯天气版本(腾讯版本UI跟聚合版本一摸一样的,只是展示的数据略有不同)

**:
链接: https://pan.baidu.com/s/1QW_EZsoXOdeJhgjQsIG4Yw?pwd=sc4g
提取码: sc4g

创作不易,可否给作者点个赞再走

Android 实战制作简易天气预报相关推荐

  1. Android实战制作简易天气预报软件

    前言:  真正的梦想,永远在实现之中,更在坚持之中.累了,就停一停,让手贴着手,温暖冷漠的岁月:苦了,就笑一笑,让心贴着心,体味至爱的抚摸:哭了,就让泪水尽情流淌,痛彻心菲也是精彩.选择一条道路,就选 ...

  2. Android QPython3 制作简易GUI长文本框界面

    #QPython3H 制作简易GUI长文本框界面 #函数代码部分: import androidhelper as android droid=android.Android() from qsl4a ...

  3. Android Studio制作简易微信界面

    文章目录 制作要求 一.top,buttom页面制作 二.四个tab页面和activity_main页面制作 1.四个tab页面 2.activity_main页面 三 . 五个java文件 制作要求 ...

  4. Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

    用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以 ...

  5. Android制作简易的调色器,并实现复制色值的功能

    Android制作简易的调色器,并实现复制色值的功能 我们上课老师让做的作业,参照别人的代码,可能不够完善,请大家见谅- 主要用到SeekBar控件 先展示效果图吧 点击复制的Button,弹出提示信 ...

  6. php小程序开发新闻,微信小程序实战程序简易新闻的制作方法

    这篇文章主要讲述微信小程序实战程序简易新闻的制作方法的相关资料,需要的朋友可以参考下 微信小程序 实战项目: 简易新闻制作 先看下效果: 实现思路数据全部是采用的本地数据,图片也是本地图片,因为苦逼的 ...

  7. Android实战简易教程-第五十一枪(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)

    前段时间写过一篇文章:Android实战简易教程-第四十七枪(ListView多选-实现点餐系统)有的同学留言建议,可不可以动态控制checkbox的显示和全选反选功能,我研究了一下,发现实现也比较容 ...

  8. Android制作简易的音乐播放器和视频播放器

    文章目录 制作简易的音乐播放器和视频播放器 播放多媒体文件 播放音频 MediaPlayer的工作流程 项目示例 播放视频 项目示例 制作简易的音乐播放器和视频播放器 播放多媒体文件 Android在 ...

  9. Android趣味课程:简易天气预报功能

    在某些应用程序中,经常有天气预报的功能,通过当地天气情况给予用户合适的建议.比如团购网站根据定位,天气推送用户需要的信息等.本篇博客会使用公共api当中天气预报接口信息,编写一个简易天气预报的界面. ...

最新文章

  1. 重磅!李飞飞入选美国国家医学科学院,她用AI改变了医疗
  2. EIGRP-2(EIGRP的路由认证)
  3. linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本
  4. 房产企业数字化转型如何快速落地?
  5. react 示例_2020年的React Cheatsheet(+真实示例)
  6. 听说,阿里“拆中台”了?
  7. 黑客借“甲型流感”传毒 挂马疾病预防控制中心网站
  8. 部分编程错误小集-15.04
  9. Jquery与.net MVC结合,通过Ajax
  10. chrome 浏览器之下载管理器插件
  11. 嵌入式开发有年龄限制吗_报名深圳成考有年龄限制吗?
  12. php 数组 构造为树,从PHP中的平面数组构建树
  13. 简单介绍如何用Reporting Service制作报表
  14. 数据分析案例-文本挖掘与中文文本的统计分析
  15. line-height绝对值和相对值的区别
  16. Arduino教程4:面包板与洞洞板
  17. 听说Python成为世界性语言了? Python是怎么构建世界?字符串在哪里?(三)
  18. 借鉴一些关于js框架的东西
  19. Python解压所有压缩包到同一文件夹下
  20. 德语翻译公司的前景及翻译公司推荐

热门文章

  1. 漏电leakage 跟 温度是个怎么样的关系?
  2. openGL之API学习(一八七)gl_Vertex
  3. 全球首次,我国科学家攻克世界级难题,证实量子金属态存在
  4. mac上的新型的影视后期编辑合成软件
  5. 含文档+PPT+源码等]精品微信小程序预约挂号小程序+后台管理系统|前后分离VUE[包运行成功]微信小程序毕业设计项目源码计算机毕设
  6. 每日三题 10.13
  7. flutter踩坑高德地图amap_base
  8. 堆的创建以及堆的基本操作
  9. loadrunner订飞机票录制脚本及脚本调试
  10. 用FLASH MX制作动画卡通人物(1)-人物素材的准备与处理