程序流程AppInventor

时间:2013-11-15 01:35:44

标签: android list barcode-scanner app-inventor

好吧......没有人笑......我正在麻省理工学院/谷歌Appinventor的应用程序上工作。这是一个纲要:

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

  • 如果该项目不在列表中    将该项目添加到清单中,并在数量中添加“1”。

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

enter image description here

2 个答案:

答案 0 :(得分: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)

最后一行是我不知道如何翻译成app-inventor语言,但希望它足以指出你正确的方向。

答案 1 :(得分:0)

@blahdiblah表现得很好analysis of the problem App Inventor的解决方案如下所示:
您必须使用替换列表项块而不是插入列表项

enter image description here