App Inventor TinyWebDB列表问题

时间:2014-12-18 15:09:56

标签: app-inventor

我在使用App Inventor 2中的TinyWebDB时出现问题。这是块码的屏幕截图。

Blockcode Screenshot

此屏幕的目标是存储图像列表(数组),然后使用按钮查询它们,但我的问题已经提前开始了。首先有一个名为fotoList的变量初始化,并声明为空列表。

当此屏幕初始化(左侧块)时,我将空的fotoList存储在标签FotoListTag下。然后,如果标签下的图像" SteckbriefFoto"不在此列表中 - > getValue with tag" FotoListTag"。然后他跳进右边的区块并添加照片..其他不重要的东西..最后我将列表再次存储在TinyWebDB(以及TinyDB)中的标签中" FotoListTag&#34 ;.然后它返回到左边的块,在那里我想要将image.picture设置为我存储在变量fotoList中的照片。

编译代码时,打开显示

的页面时出错
Select list item: List index too large 
Select list item: Attempt to get item number 1 of a list of length 0:()

我只是没有解决此代码的问题,我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

对于列表,valueIfTagNotThere应为create empty list而不是空字符串

首次运行您的应用时,TinyDB为空,这意味着,对于tag = FotoListTag,您没有返回任何值,因此这应该是开头的空列表。

稍后您尝试从列表中选择第一项(zahl为1)。如您所知,列表在开头是空的,所以可能您应该添加一个if语句来检查,如果列表不为空,只有选择第一项...相同的tag = Schriftlist。< / p>

您还有时间问题。在Screen.Initialize中,您试图从TinyWebDB获取值。这是一个异步调用,你在TinyWebDB.GotResult事件中得到结果,这需要一点点(比如说500毫秒),但同时会执行Screen.Initialize事件的完整块。可能你期待的是,同时tag = FotolistTag不再是空的,但事实并非如此。

enter image description here