我在使用App Inventor 2中的TinyWebDB
时出现问题。这是块码的屏幕截图。
此屏幕的目标是存储图像列表(数组),然后使用按钮查询它们,但我的问题已经提前开始了。首先有一个名为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:()
我只是没有解决此代码的问题,我希望有人可以帮助我。
答案 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不再是空的,但事实并非如此。