青岛网站建设公司 中小企业补贴写字楼装修公司

web/2025/10/3 21:35:00/文章来源:
青岛网站建设公司 中小企业补贴,写字楼装修公司,辽宁工业大学教务管理系统,最近中文字幕mv在线视频参考资料 OpenWeatherMap提供了一个/forecast接口#xff0c;用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口#xff0c;并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数#xff1a; URL: http://api.openwe…参考资料 OpenWeatherMap提供了一个/forecast接口用于获取未来几天的天气预报。你可以使用HTTP GET请求访问该接口并根据你所在的城市或地理坐标获取相应的天气数据。 以下是一个示例请求的URL和一些常用的参数 URL: http://api.openweathermap.org/data/2.5/forecast查询参数 q (必需): 城市名称 (e.g. “London,uk”) 或城市ID (可在OpenWeatherMap网站上获得) 或地理坐标 (使用纬度和经度, e.g. “37.7749,-122.4194”)。appid (必需): 你的OpenWeatherMap API密钥。 可选参数 units: 温度单位 (例如 “metric” 表示摄氏度, “imperial” 表示华氏度)。 lang: 返回的天气描述语言 (例如 “en” 表示英语)。 从openWeatherMap获取forecast 1.在WeatherService接口中增加请求函数。 getForecastByCityName此方法与 getWeatherByCityName 方法类似但它检索预报数据而不是当前天气数据。它还采用城市名称和 API 密钥作为参数并返回 ForecastResponse 类型的 Call 对象这是从 API 收到的响应。 interface WeatherService {GET(weather)fun getWeatherByCityName(Query(q) cityName : String,Query(appid) apiKey : String) : CallWeatherResponseGET(forecast)fun getForecastByCityName(Query(q) cityName : String,Query(appid) apiKey : String) : CallForecastResponse }2.编译一个新的ForecastResponse 类用于解析天气预报的 JSON 数据。它具有以下属性 cod表示响应 JSON 中的 cod 值的字符串变量。message表示响应 JSON 中的消息值的整数变量。cnt表示响应 JSON 中的 cnt 值的整数变量。forecastCellListForecastCell 对象的ArrayList表示响应JSON 中的预测单元格列表。forecastCityForecastCity 对象表示响应 JSON 中的城市详细信息。 这些属性使用 SerializedName 进行注释以指定 JSON 中相应的键。提供默认值是为了初始化目的。 package com.example.myweather.openWeatherMapimport com.example.myweather.WeatherResponseClouds import com.example.myweather.WeatherResponseCoord import com.example.myweather.WeatherResponseWeather import com.google.gson.annotations.SerializedNamedata class ForecastResponse (SerializedName(cod)var cod: String ,SerializedName(message)var message: Int 0,SerializedName(cnt)var cnt : Int 0,SerializedName(list)var forecastCellList : ArrayListForecastCell? null,SerializedName(city)var forecastCity: ForecastCity? null )data class ForecastCell (SerializedName(dt)val dt: Long,SerializedName(main)val main: ForecastMain,SerializedName(weather)val weather: ListWeatherResponseWeather,SerializedName(clouds)val clouds: WeatherResponseClouds,SerializedName(wind)val wind: ForecastWind,SerializedName(visibility)val visibility: Int 0,SerializedName(pop)val pop: Double 0.0,SerializedName(rain)val rain: ForecastRain,SerializedName(snow)val snow: ForecastSnow,SerializedName(sys)val sys: ForecastSys,SerializedName(dt_txt)val dt_txt: String )data class ForecastCity(SerializedName(id)val id: Int 0,SerializedName(name)val name: String ,SerializedName(coord)val coord: WeatherResponseCoord,SerializedName(country)val country: String ,SerializedName(population)val population:Int 0,SerializedName(timezone)val timezone: Int 0,SerializedName(sunrise)val sunrise: Int 0,SerializedName(sunset)val sunset: Int 0 )data class ForecastMain(SerializedName(temp)val temperature: Double 0.0,SerializedName(feels_like)val feelsLike: Double 0.0,SerializedName(temp_min)val minTemperature: Double 0.0,SerializedName(temp_max)val maxTemperature: Double 0.0,SerializedName(pressure)val pressure: Int 0,SerializedName(sea_level)val seaLevel: Int 0,SerializedName(grnd_level)val groundLevel: Int 0,SerializedName(humidity)val humidity: Int 0,SerializedName(temp_kf)val temperatureKf: Double 0.0 )data class ForecastWind(SerializedName(speed)val speed: Double 0.0,SerializedName(deg)val degree: Int 0,SerializedName(gust)val gust : Double 0.0 )data class ForecastRain(SerializedName(3h)val heightInThreeHours: Double 0.0 )data class ForecastSnow(SerializedName(3h)val heightInThreeHours: Double 0.0 )data class ForecastSys(SerializedName(pod)val partOfDay: String ) 3.在CustomEvent.kt中增加ForecastResponseEvent事件 class ForecastResponseEvent(val forecastResponse: ForecastResponse)4.在RetrofitClient.kt中增加getForecastByCityName函数用来MainActivity中调用请求接口 fun getForecastByCityName(cityName: String) {val call weatherService.getForecastByCityName(cityName, API_KEY)call.enqueue(object : CallbackForecastResponse {override fun onResponse(call : CallForecastResponse,response: ResponseForecastResponse) {if(response.isSuccessful) {val forecastData response.body()handleForecastData(forecastData)} else {handleForecastFailure(response.message())}}override fun onFailure(call: CallForecastResponse, t: Throwable) {handleForecastFailure(t.message!!)}})5.并且增加了相应函数 handleForecastFailure接受消息字符串作为参数并将其与前缀一起打印出来。handleForecastData接受一个ForecastResponse对象作为参数。它检查该对象是否为空如果不为空则创建一个对象ForecastResponseEvent并使用 EventBus 发布它。然后它调用该printForecastResponse函数并传入该ForecastResponse对象。printForecastResponse接受一个ForecastResponse对象作为参数并打印出该对象的各种属性例如 、cod、message和cnt的大小forecastCellList。它还打印出对象的id和属性。nameforecastCity private fun handleForecastFailure(message: String) {println(handleForecastFailure:${message})}private fun handleForecastData(forecastData: ForecastResponse?) {if(forecastData null) returnval forecastResponseEvent ForecastResponseEvent(forecastData)EventBus.getDefault().post(forecastResponseEvent) //这里发送了forecastResponseEventprintForecastResponse(forecastData)}private fun printForecastResponse(forecastResponse: ForecastResponse) {println(cod:${forecastResponse.cod})println(message:${forecastResponse.message})println(cnt:${forecastResponse.cnt})println(list:${forecastResponse.forecastCellList?.size})println(city id:${forecastResponse.forecastCity?.id} name:${forecastResponse.forecastCity?.name})}6.在MainActivity中处理forecastResponseEvent事件 该函数是一个事件处理程序在收到onReceiveForecastResponsea 时调用。ForecastResponseEvent它采用事件对象作为参数其中包含预测响应数据。该函数调用该updateForecastList函数根据接收到的数据更新预测列表。 updateForecastList函数接受一个ForecastResponse对象作为参数。然后它创建一个SimpleDateFormat对象来格式化预测响应中的日期和时间。该函数初始化一个空的可变列表data来存储格式化的预测数据。 然后该函数会迭代 的预测单元格列表中的每个单元格forecastResponse。对于每个单元格它都会创建一个字符串oneLine其中包含格式化的日期和时间、温度、feel_like、天气主体和天气描述。通过减去常数值并将其转换为整数将温度从开尔文转换为摄氏度kelvins。 每个oneLine字符串都会添加到data列表中。 最后该函数创建一个ArrayAdapter以data列表为数据源的适配器并将其设置为ListViewID 的适配器listViewTodayForcast。这将使用更新的预测数据更新列表视图。 RequiresApi(Build.VERSION_CODES.O)Subscribe(threadMode ThreadMode.MAIN)fun onReceiveForecastResponse(event: ForecastResponseEvent) {updateForecastList(event.forecastResponse)}private fun updateForecastList(forecastResponse: ForecastResponse) {val simpleDateFormat SimpleDateFormat(yyyy-MM-dd HH:mm, Locale.ENGLISH)val data mutableListOfString()for (cell in forecastResponse.forecastCellList!!) {val oneLine ${simpleDateFormat.format(cell.dt*1000L)}\n temperature:${cell.main.temperature.minus(kelvins).toInt()}, feel_like:${cell.main.feelsLike.minus(kelvins).toInt()},\n weather:${cell.weather.first().main},${cell.weather.first().description}data.add(oneLine)}val adapter ArrayAdapterString(this, android.R.layout.simple_list_item_1, data)findViewByIdListView(R.id.listViewTodayForcast).adapter adapter}7.我在主界面中增加了一个ListView用来显示forecast返回的数据 ListViewandroid:idid/listViewTodayForcastandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:layout_constraintTop_toBottomOfid/textViewWeatherapp:layout_constraintStart_toStartOfparentapp:layout_constraintEnd_toEndOfparent/8.最后的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站挣钱吗现在口碑营销有哪些

之前写过一篇关于springboot 与 mybatis整合的博文,使用了一段时间spring-data-jpa,发现那种方式真的是太爽了,mybatis的xml的映射配置总觉得有点麻烦。接口定义和映射离散在不同的文件中,阅读起来不是很方便。于是,准…

网站建设黄页免费观看拓什么设计网站

摘要: 在人工智能技术的不断进步中,AnimateAnyone项目以其创新性和易用性脱颖而出,成为GitHub上备受瞩目的AI项目之一。由阿里巴巴智能计算研究院开发的这一技术,允许用户通过提供一张静态照片,快速生成动态角色。本文…

泰州网站建设服务好兄弟们拿走不谢

原型与原型链 原型 在js中,每个对象都有一个原型(prototype)。原型是一个对象,其他对象可以通过原型来共享属性和方法。当我们创建一个对象时,它会自动关联到一个原型对象。 例如:function Person(name, a…

微信开放平台 网站开发临沂网站建设步骤

orm框架选型问题在过去的几年中,像Hibernate这样的对象关系映射工具已经帮助开发人员在处理关系数据库方面获得了巨大的生产力增长。 ORM使开发人员可以专注于应用程序逻辑,并避免为诸如插入或查询之类的简单任务编写大量样板SQL。 但是,充分…

网站建设大小pc网站怎么适配移动端

前段时间换了Tomcat6.0。一直都没配置mysql数据库数据源。今天想用时&#xff0c;既然按以前版本的方式配不上。。汗。。。后来上网查找才找到解决方案。写下这段话&#xff0c;以免忘记。。具体做法如下&#xff1a; 在$CATALINA_HOME/conf/server.xml文件中的<Host><…

北京网站建设产品介绍网站建设与功能模块

怎样在ArcGIS中保存地图模板以在地图制图与打印之前使用呢? 文章目录 一、地图模板简介二、地图模板创建1. 创建模板2. 创建缩略图3. 保存模板三、地图模板使用一、地图模板简介 使用ArcMap打开一个已有的地图模板,【文件】→【新建】,任选一个模板,这里选择一个传统模板。…

网站的建设费用分为青岛做公司网站

近似训练 近似训练&#xff08;Approximate Training&#xff09;是指在机器学习中使用近似的方法来训练模型&#xff0c;以降低计算复杂度或提高训练效率。这种方法通常用于处理大规模数据集或复杂模型&#xff0c;其中精确的训练算法可能过于耗时或计算资源不足。 近似训练…

平面设计师推荐网站施工企业科技创新规划

一、HashMap是什么&#xff0c;怎么用 1、HashMap是什么 HashMap 也是 Rust 标准库中提供的集合类型&#xff0c;但是又与动态数组不同&#xff0c;HashMap 中存储的是一一映射的 KV 键值对&#xff0c;并提供了平均时间复杂度为 O(1) 的查询方法。 2、HashMap怎么用 &…

罗湖高端网站设计常德市做网站联系电话

本文翻译自&#xff1a;Coco Test Engine – The New Era of Code Coverage Analysis 原文作者&#xff1a;Qt Group首席软件工程师Sbastien Fricker 审校&#xff1a;Felix Zhang 我们的Coco 7重大更新带来了一个长期以来备受期待的功能——测试数据生成&#xff08;即Coco …

手机网站排行榜策划案推广

今天配置了一下SharePoint Search&#xff0c;怕忘&#xff0c;赶紧记下来。 我参考了国外的一篇文章&#xff1a;Search Configuration in SharePoint 2010 首先&#xff0c;要查看以下User Profile Service, User Profile Synchronization Service是否运行正常&#xff0c;然…

长春市住房建设局网站南京比较好的网络策划公司

一、介绍 MiniConda 是一个轻量级的 Conda 版本&#xff0c;它是 Conda 的精简版&#xff0c;专注于提供基本的环境管理功能。Conda 是一个流行的开源包管理系统和环境管理器&#xff0c;用于在不同的操作系统上安装、管理和运行软件包。 与完整版的 Anaconda 相比&#xff0c…

网络推广网站培训千锋教育学费一览表

shell && 和 || 的短路使用 && 和 || 在 shell 中分别表示 and 和  or&#xff0c;和其它语言类似&#xff0c;这两个操作有短路效应。也就是说&#xff0c;当判断式已经确定时&#xff0c;不再继续处理后续表达式。 && 在失败时中断&#xff0c; || …

歌曲伴奏在线制作网站网页设计基础知识点考试

基础篇 MySQL概述 数据库概述 数据库相关概念 主流的关系型数据库管理系统 MySQL数据库的安装与启动 下载&#xff1a;MySQL :: MySQL Community Downloads 安装步骤 MySQL―8.0.40超详细保姆级安装教程_mysql8.0.40安装教程-CSDN博客文章浏览阅读1k次。_mysql8.0.40安装教…

网站集约化建设工作讲话微信电脑版下载官网

1.网络字节序 TCP/IP协议规定&#xff0c;网络数据流采用大端字节序&#xff0c;即低地址高字节。为了使网络程序具有可移植性&#xff0c;使得同样的C代码在大端和小端计算机上编译后都能正常运行&#xff0c;可以调用以下库函数做网络字节序和主机字节序的转换。 #include&…

html5手机微网站模板网络营销推广网站收录哪些

<input> 无限制输入 type 限制输入 type 如下类型 type 后还可以跟一些属性: 如<input typetext maxlength 10> 限制文本的长度为10字节 list 可以用的时候再来查, list就是当一个建议值不够的时候添加到几个. <form> <input typ…

做网站要学哪些建站网站主题设置不能点

保存至本地网盘 链接&#xff1a;https://pan.quark.cn/s/f82a1fa7ed87 提取码&#xff1a;6UUw 2025年“华数杯”国际大学生数学建模竞赛比赛时间于2025年1月11日&#xff08;周六&#xff09;06:00开始&#xff0c;至1月15日&#xff08;周三&#xff09;09:00结束&#xff…

手机搭建本地网站广州佛山建立网站的公司

为了配合微软下一代桌面操作系统—Windows7的发布&#xff0c;微软.NET俱乐部联合ZDNET至顶网社区特地组织了“让社区激情随Win 7 一同绽放”—Windows 7 社区发布会。10月24日13点半&#xff0c;将在北京&#xff0c;微软亚洲研究院地下一层阶梯会议中心举行&#xff0c;欢迎当…

明珠信息港网站建设专家多语种网站建设方案

​目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的回归分析 MATALB代码:基于长短期神经网络的回归分析,基于LSTM的回归预测资源-CSDN文库 https://download.csdn.net/download/abc991835105/88184633 效果图 结果分析 展望 参考论文 背影 LSTM神经…

北京网站设计公司jq成都柚米科技15临沂天元建设集团

目录 一、图像的基础知识 二、NumPy模块 三、图像色彩变化 3.1 RGB图像的分通道显示 3.2 HSV图像的分通道显示 一、图像的基础知识 总结的笔记&#xff1a; """ 二值图: 每个像素取值 0或1,图像显示出来只有黑白色; 黑色:0 白色:1 灰度图: …

网站平台推广清博大数据舆情监测平台

写在前面 使用Task类来控制多线程的同步执行&#xff0c;可应用于多任务分发执行后&#xff0c;再做归并处理。Tas既拥有线程池的优点&#xff0c;同时也解决了使用ThreadPool不易控制的弊端&#xff1b;可以非常简便并可靠地实现多线程的顺序执行。 代码实现 public class …