如何检查tinyDB标记在App Inventor中是否具有任何属性

时间:2016-01-10 18:39:07

标签: android json app-inventor tinydb

我需要对App Inventor 2中的问题提供一点帮助。案例是我有一个被解析的JSON结果,然后将它作为列表存储在tinyDB标记中(storeparseData)。

问题是,我在屏幕启动时完成了此功能,因此要使用该JSON列表填充tinyDB标记,然后在用户请求中搜索特定值。

当应用程序运行并输入搜索条件时,我收到以下错误“参数[ empty-string ]是GetValue的参数数量错误”。我想,它找不到要存储在tinyDB标记中的任何内容来搜索,导致JSON数据需要一些时间来获取和解析。

以下是我现在所做的检查存储列表是否在tinyDB中的内容:

enter image description here

在这里,我在tinyDB中检查存储的列表中的项目:

enter image description here

那么如何检查tinyDB是否使用JSON结果列表填充在此标记中,以便我可以搜索它?这可以在App Inventor 2中使用吗?

请有人就此问题提供建议,如果可能,请提供示例代码块,或者有类似的教程(如果有的话)。提前感谢大家的答案。

2 个答案:

答案 0 :(得分:1)

这看起来很奇怪......一个复杂的if then else结构,大量的空插座和你的比较if "storeparsedData" = <empty string>总是假的......显然这没有意义......

看起来你觉得太复杂了? 怎么样:

enter image description here

正如my answer to your other question中已经建议的那样,您应该学习如何使用列表......

另外,做一些教程可能有助于学习更多基础知识......

回答你的问题&#34; 你能解释为什么你选择在那里创建一个空列表。&#34;:如果你正在使用列表中的列表并且您正试图从TinyDB读取列表,那么如果TinyDB中没有该标记(例如,第一次启动应用程序后),您还必须考虑应该发生什么。对于列表,在这种情况下,应返回空列表。注意:is list empty?块总是需要一个列表。如果将valueIfTagNotThere设置为空字符串,则会出现运行时错误...

答案 1 :(得分:0)

您可以使用时钟功能来延迟时间。首先,在“Screen1.Initialize”部分中将全局DelayCountdown设置为特定数字。然后,通过使用“when Clock1.Timer”函数,您只需要在执行另一个函数之前添加另一个检查DelayCountdown是否等于零。

enter image description here