当前位置: 网站首页>小程序开发>小程序制作

湘阴网站推广【湘阴办理400电话】湘阴SEO优化、湘阴微信公众号APP客户端小程序开发、湘阴网站托管、湘阴APP开发

发表日期: 2021-04-09 09:07:49 浏览次数:159

湘阴网站推广【湘阴办理400电话】湘阴SEO优化、湘阴微信公众号APP客户端小程序开发、湘阴网站托管、湘阴APP开发

湘阴县,古称罗城 [1]  ,湖南省岳阳市下辖县。位于湖南省东北部,居湘资两水尾闾、南洞庭湖滨,湘江自南向北贯穿全境,把全县分为东西两部,东部为丘陵岗地,西部为滨湖平原,湘阴县地处长沙、岳阳、益阳三市五县中心,紧邻湖南省省会长沙,县城距长沙中心城区38公里,处于“长株潭”半小时经济圈内,湘阴县是“长株潭”地区沿湘江、过洞庭湖、经长江出海的必经通道,既是“长株潭”城市群沿江北上在洞庭湖的“大码头”,也是岳阳和武汉城市圈对接“长株潭”城市群的“桥头堡” [2]  ,2016年3月,湘阴县城被评为2015年度岳阳市最美县城 [3]  。

截至2019年,湘阴县辖1个街道,12个镇,2个乡 [4]  ,土地总面积1581.5平方公里,耕地面积63.21千公顷,年末总人口78万人 [5-6]  。

湘阴县是四化两型、长江经济带、长江中游城市群、洞庭湖生态经济区等国家和区域经济发展战略的重要节点和支撑点 [7]  ,是长株潭城市群全国“两型社会”综合配套改革试验区滨湖示范区、湖南省承接产业转移试点县、湖南省最具投资吸引力县,长株潭城市群全国“两型社会”试验区建设总体规划确定的产业转移承接基地、现代装备制造业配套基地、绿色农产品生产供应和加工基地、区域性港口物流基地和休闲旅游服务基地 [8]  。国家知识产权强县工程试点县。 [9]  2020年10月9日,被生态环境部授予第四批国家生态文明建设示范市县称号。

调用新建的过程

已经创建了显示问题-答案的过程displayQAs,但在调用它之前,它起不到任何作用。修改SubmitButton.Click事件处理程序,用displayQAs替代对QuestionsAnswersLabel.Text的简单设置,来显示所有的问题-答案。更新后的块如图10-7所示。

{%}

图 10-7 在SubmitButton.Click中调用displayQAs过程

将数据永久保存到Web数据库

到目前为止,用户输入的问题-答案只是保存在列表中,如果此时用户退出应用,会怎么样呢?正如“开车不发短信”(第4章)或“Android,我的车在哪儿?”(第7章)中所学到的,如果数据不能存储到数据库中,那么当用户退出并重新打开应用时,数据将丢失。只有永久存储数据,才能让出题者在每次打开应用时,都能看到最新版本的数据,并对数据内容进行编辑。同时,永久保存数据也是必要的,因为在“答题”应用中也需要访问这些数据。

之前我们学习过用TinyDB组件在数据库中存储并检索数据,本章将使用TinyWebDB组件。两者的区别是:TinyDB将数据存储在手机上,而TinyWebDB将数据存储在Web数据库中。

本应用在设计上之所以选择在线数据库,而非手机数据库,关键在于存这些数据要供两个应用访问,如果出题者把问题和答案都存储在个人的手机上,那么答题者将无法获取数据并参加考试!而TinyWebDB将数据保存在互联网上,答题者可以使用不同于出题者的设备来访问试题及答案。(在线数据存储通常被称作云。)

下面是永久保存列表数据(如问题及答案)的通用方案:

  • 每当向列表中添加新项时,将数据保存到数据库;

  • 应用启动时,从数据库中加载数据,并保存在列表变量中。

首先考虑数据的保存:每次用户输入新的问题-答案时,将QuestionList和AnswerList保存到数据库中。

块的功能

TinyWebDB1.StoreValue块将数据存储在Web数据库中。StoreValue有两个参数:tag用做数据的标识,value是要保存的实际数据。如图10-8所示,QuestionList在存储时以“questions”为tag(标签),而AnswerList则用“answers”为tag(标签)。

{%}

图 10-8 将问题和答案保存到数据库中

建议在个人应用中使用更有特点的tag(如DavesQuestions和DavesAnswers)来代替questions和answers,这非常重要,因为你正在使用App Inventor的默认Web数据库,所以你的数据(列表questions和answers)可能会被别人的数据覆盖,也包括那些正在学习本教程的人。

这里要提醒各位,App Inventor默认的Web服务会在各个程序员和各种应用之间共享,因此它仅适用于测试。当你打算正式发布一款应用时,需要建立自己私有的数据库服务。幸运的是,做到这一点很简单,而且不需要编程(见第22章)。

从数据库加载数据

本应用需要永久保存数据,一方面因为出题者可以随时关闭应用,并随时启动应用,以便对之前输入问题和答案进行补充、修改或删除。这就需要在每次启动应用时,从数据库中加载那些已存储的数据。(另一方面,答题者可以访问数据库总的问题及答案,稍后会涉及到。)

正如我们之前所学,在应用启动时需要进行的操作,要通过Screen.Initialize事件处理程序来实现。在本应用中,需要用TinyWebDB组件向Web数据库请求questions及answers这两个列表,因此Screen1.Initialize将两次调用TinyWebDB.GetValue。块的设置如下图:

{%}

图 10-9 在应用启动时从数据库中请求列表数据

块的功能

图10-9中使用的TinyWebDB.GetValue块与之前用过的TinyDB.GetValue的运行机制不同,后者会立即返回一个值,而前者只负责向Web数据库发送请求,不会立即收到返回值。当应用收到Web数据库返回的数据时,会触发TinyWebDB.GotValue事件,因此需要另外编写一个GotValue事件的处理程序来接收返回的数据。

当TinyWebDB.GotValue事件发生时,所请求的数据封装在参数valueFromWebDB中,所请求的数据标签(tag)则封装在参数tagFromWebDB中。

如图10-9所示,在Screen1.Initialize事件处理程序中发出了两次GetValue请求,分别请求questions和answers,因此GotValue也将被触发两次。为了避免把questions的数据写入AnswerList中(或反过来),需要对tag进行检查,来判断收到的是哪个请求的返回值,然后再把返回值写到相应的列表中(QuestionList或AnswerList)。现在,你该意识到这些tag的真正用途了吧!

块的功能

应用中两次调用TinyWebDB1.GetValue来请求存储过的数据:分别是为QuestionList及AnswerList。当收到Web数据库返回的数据时,触发TinyWebDB1.GotValue事件,如图10-10。

{%}

图 10-10 当收到来自web的数据时触发GotValue事件

从数据库中返回的数据封装在GotValue事件的valueFromWebDB参数中。在GotValue的事件处理程序中,外层的if块用来判断数据库的返回值valueFromWebDB是否为空。设想用户首次启动应用,数据库中没有任何数据。通过询问参数valueFromWebDB是否“is a list?”,可以得知是否真的有数据返回。如果没有数据返回,则会跳过对GotValue事件的处理。

如果有数据返回(is a list?为真),再继续判断收到的是哪个请求。识别数据的标记tag封装在tagFromWebDB中:即可能是“questions”,也可能是“answers”,如果tag是“questions”,则将valueFromWebDB保存到变量QuestionList,否则(else块),保存到AnswerList。(如果你使用的tag不是“questions”和“answers”,请替换成你自己的tag再做判断。)

我们希望当两个列表都已收到时(GotValue被触发两次)再来显示这些数据。想想看,如何判断从数据库收到了两个列表的数据?是的,用if块来检测两个列表的长度是否相同,因为只有两个列表都收到了,检测结果才能为真。如果为真,你可以轻松调用之前编写的displayQAs过程来显示加载的数据。

{%}

图 10-11 “出题”应用中的块


湘阴网站推广湘阴办理400电话湘阴SEO优化、湘阴微信公众号APP客户端小程序开发、湘阴网站托管、湘阴APP开发

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878