我在数据库中有一个表。在该表中,行数未知。我想放置复选框,但复选框的数量应该等于行数。因此我试图在while循环中做到这一点。我找到了表中存在的行数。它是rowNumber。然后,我做了一个while循环。此时,出现了串行故障。因为当我点击任何复选框时,下面的行被最后一个 m 值调用。
cbox[m] = checkBox.new(checkX, txtY, sendRows[m], col,
因为退出 while 循环后,m 等于 rowNumber。并且当单击任何复选框时,它不知道单击了哪一行,因为 m = rowNumber. 我尝试了很多事情,但我做不到。我应该怎么办 ??我应该放弃使用循环吗?如果我放弃使用它怎么办?
这是我无法修复的代码
local m = 1
while(m<rowNumber)
cbox[m] = checkBox.new(checkX, txtY, sendRows[m], col,
function(this)
local state = this:getCheck()
if state then
print(m .. " checked")
gonder[m] = 1
else
print(m .. " does not checked")
gonder[m] = 0
end
end
)
screen:addChild(cbox[m])
cbox[m]:setCheck(settings.getMusicState())
txtY = txtY + gap
print ("gonder[m] = " .. gonder[m])
end
如果代码如下所示,则运行正常:
cbox[1] = checkBox.new(checkX, txtY, sendRows[1], col,
function(this)
local state = this:getCheck()
if state then
print(1.. " checked")
gonder[1] = 1
else
print(1 .. " does not checked")
gonder[1] = 0
end
end
)
screen:addChild(cbox[1])
cbox[1]:setCheck(settings.getMusicState())
txtY = txtY + gap
cbox[2] = checkBox.new(checkX, txtY, sendRows[2], col,
function(this)
local state = this:getCheck()
if state then
print(2.. " checked")
gonder[2] = 1
else
print(2 .. " does not checked")
gonder[2] = 0
end
end
)
screen:addChild(cbox[2])
cbox[2]:setCheck(settings.getMusicState())
txtY = txtY + gap
.
.
.
.