Indexing Corona SDK:TableView索引未更新

Indexing Corona SDK:TableView索引未更新,indexing,lua,tableview,coronasdk,Indexing,Lua,Tableview,Coronasdk,我对Corona SDK和tableview有问题,但请允许我先显示代码: function functions.onRowTouch( event ) print("ONROWTOUCH EXECUTING") if event.phase == "tap" or event.phase == "press" then print("EVENT.TARGET.INDEX: " .. event.target.index) editItemNum = event.tar

我对Corona SDK和tableview有问题,但请允许我先显示代码:

function functions.onRowTouch( event )
  print("ONROWTOUCH EXECUTING")

  if event.phase == "tap" or event.phase == "press" then
    print("EVENT.TARGET.INDEX: " .. event.target.index)
    editItemNum = event.target.index
    print("editnum: " .. editItemNum)
    print("ITEM tapped")
    if saveData.names[event.target.index] ~= nil then
        function functions.pressRow(event)
            print("ROW NUM: " .. event.target.index)
            print("EDITNUM = " .. editItemNum)
            functions.pressItem()
            return true
        end
        event.target:addEventListener("tap", functions.pressRow)
    end
  elseif event.phase == "swipeLeft" then
    print("SWIPING LEFT")
    tableView:deleteRows({event.target.index}, {slideLeftTransitionTime=450})
    table.remove(saveData.names, editItemNum)
    table.remove(saveData.dates, editItemNum)
    table.remove(saveData.amounts, editItemNum)
    loadsave.saveTable(saveData, "payMeBackTable.json")
    print("ROW DELETED")
  end
end
我很抱歉缩进,stackoverflow只是一直在更改它。。。 但我的问题是: 在event.phase==“tap”中,我将editItemNum分配给event.target.index。之后,我删除一行被点击。这是第一次非常有效。顺便说一句,我使用这行代码来实现:

tableView:deleteRows({editItemNum}, {slideLeftTransitionTime=400} )

因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。 但是,一旦我删除了该行,该行的索引号就不再适应了。例如,我的表中有3个对象:1,2,3。现在我删除中间的一个,所以我应该得到:1,2。但是当我触摸第二行时,索引仍然是3。从视觉上看,这看起来像:1,3。 这在我看来毫无意义,我真的没有看到我的代码有任何问题。我确实在Corona SDK论坛上找到了一篇关于这个问题的错误报告,但那是两年前的事了,已经解决了。。。 有什么帮助吗?:)

亲切问候,,
Bram

但您的代码包含以下行:
tableView:deleteRows({event.target.index},{slideLeftTransitionTime=450})
而不是您声称使用的
tableView:deleteRows({editItemNum},{slideLeftTransitionTime=400})
。我很困惑你在困惑什么?不管怎样,这是一个确定的错误!因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。至少不在提供的代码中。如果它是一个bug,并且已经被解决,请确保您的sdk是最新的。Woops,您是正确的。应将其更改为editItemNum。但是,当您更改行的结构(移动、删除…)时,event.target.id仍不会更新。这是一个bug,还没有修复。@BramVanbilsen看起来问题还在那里。你找到办法了吗?(很抱歉更新了这么旧的主题…)但您的代码包含以下行:
tableView:deleteRows({event.target.index},{slideLeftTransitionTime=450})
而不是您声称使用的
tableView:deleteRows({editItemNum},{slideLeftTransitionTime=400})
。我很困惑你在困惑什么?不管怎样,这是一个确定的错误!因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。至少不在提供的代码中。如果它是一个bug,并且已经被解决,请确保您的sdk是最新的。Woops,您是正确的。应将其更改为editItemNum。但是,当您更改行的结构(移动、删除…)时,event.target.id仍不会更新。这是一个bug,还没有修复。@BramVanbilsen看起来问题还在那里。你找到办法了吗?(很抱歉更新了这么旧的主题…)