3

好吧...没人笑...我正在麻省理工学院/Google Appinventor 开发一个应用程序。这是一个纲要:

  • 扫描条码然后运行图示功能。
  • 如果该项目在列表中,则在库存列表中查找该项目的位置索引。使用该项目索引,将数量列表中的值增加 1。

  • 如果该项目不在列表中,则将该项目添加到库存中,并在数量上添加“1”。

我不明白为什么它不起作用,所以我只是检查一下我的逻辑是否有任何明显的缺陷。如果逻辑看起来很可靠,那么我应该能够找出 Appinventor 问题以使其工作。

在此处输入图像描述

4

2 回答 2

2

这是您将函数翻译(准确吗?)为伪代码,以帮助我自己的理解(希望其他人的理解):

function addItem:
  if inventoryList.contains(scannerResult):
    inventoryPosition = inventoryList.positionOf(scannerResult)
    quantityPosition = quantityList.positionOf(scannerResult)
    quantityItem = quantityList.selectListItemAt(quantityPosition)
    quantityList.insert(quantityItem at inventoryPosition)
  else
    inventoryList.add(scannerResult)
    quantityList.add(1)

当扫描仪结果已经在列表中时,问题似乎出在逻辑上。我不知道相关的 app-inventor 功能,但我认为您想要更多类似的东西:

  if inventoryList.contains(scannerResult):
    inventoryPosition = inventoryList.positionOf(scannerResult)
    quantity = quantityList.selectListItemAt(inventoryPosition)
    quantityList.setListItemAt(quantityPosition to quantity + 1)

最后一行是我不知道如何翻译成应用发明者语言的部分,但希望它足以为您指明正确的方向。

于 2013-11-15T05:16:50.313 回答
0

@blahdiblah对问题进行了很好的分析
App Inventor 的解决方案如下所示:您必须使用替换列表项
块而不是插入列表项块

在此处输入图像描述

于 2013-11-15T14:36:38.407 回答