0

我需要一些帮助来解决 App Inventor 2 中的一个问题。这种情况是我有一个解析的 JSON 结果,然后将其作为列表 (storeparseData) 存储在 tinyDB 标记中。

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

当应用程序正在运行并输入搜索条件时,我收到以下错误“ The arguments [ empty-string ] are the wrong number of arguments for GetValue”。我想,它在 tinyDB 标记中找不到任何东西要搜索,导致 JSON 数据需要一些时间来获取和解析。

这是我现在为检查存储的列表是否在 tinyDB 中所做的工作:

在此处输入图像描述

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

在此处输入图像描述

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

如果可能,请有人通过示例代码块或类似的教程(如果有)就这个问题提出建议。预先感谢大家的回答。

4

2 回答 2

1

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

看起来你的想法太复杂了?那这个呢:

在此处输入图像描述

正如我在对您的其他问题的回答中已经建议的那样,您应该学习如何使用列表...

还做一些更多的教程可能有助于学习更多的基础知识......

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

于 2016-01-10T20:18:18.890 回答
0

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

在此处输入图像描述

于 2016-01-11T08:22:44.783 回答