电晕sdk插入行tableview

努力解决问题! 我需要在tableview中插入数据库查询的结果。 问题是我不能插入数据,因为当我这样做的结果是零...如果我尝试插入固定数据(如一般字符串“你好”)它的作品! 有人能帮我吗? 非常感谢。

function listatornei()



    local dataURL = "http://www.lineitup.it/torneiopen.php?me="..usrUsr


    numtornei=0



local function listaListener(event)



if event.phase=="ended" then

  if (event.isError) then
  print("Connection not available")


  else

  id_tor = {} -- array to store query field1
  usr_tor = {} -- array to store query field2 


  local tab = event.response -- read  json data
  tab = json.decode( tab ) -- tabel conversion

    if #tab > 0 then

      for i=1, #tab do

        id_tor[i] = tab[i]["idt"]
        usr_tor[i] = tab[i]["gioc1_usr"] 

        numtornei=i
      end

    -- Listen for tableView events
      local function tableViewListener( event )
          local phase = event.phase

          print( event.phase )
      end

      -- Handle row rendering
      local function onRowRender( event )

          local phase = event.phase

          local row = event.row
          local id = row.index





           row.bg = display.newRect( 0, 0, display.contentWidth, 60 )
           row.bg.anchorX = 0
           row.bg.anchorY = 0
           row.bg:setFillColor( 1, 1, 0 )
           row:insert( row.bg )

           row.idt = display.newText(id_tor[i], 0, 0, native.systemFontBold, 40 )
           --row.idt = display.newText("pippo", 0, 0, native.systemFontBold, 40 )
           row.idt.anchorX = 0
           row.idt.anchorY = 0.5
           row.idt:setFillColor( 0 )
           row.idt.y = 20
           row.idt.x = 42

           row.usr = display.newText( usr_tor[i], 0, 0, native.systemFont, 40 )
           --row.usr = display.newText( "pluto", 0, 0, native.systemFont, 40 )
           row.usr.anchorX = 0
           row.usr.anchorY = 0.5
           row.usr:setFillColor( 0.5 )
           row.usr.y = 20
           row.usr.x = 250


           row:insert( row.idt )
           row:insert(  row.usr )


      end

      -- Handle row's becoming visible on screen
      local function onRowUpdate( event )

          local row = event.row

          print( "Row:", row.index, " is now visible" )
      end

      -- Handle touches on the row
      local function onRowTouch( event )
          local phase = event.phase

          if "press" == phase then
              print( "Touched row:", event.target.index )
          end
      end


      -- Create a tableView

    local tableView = widget.newTableView
    {
        top = 100,
        width = 620, 
        height = 410,
        --maskFile = "formlog1.png",
        listener = tableViewListener,
        onRowRender = onRowRender,
        onRowTouch = onRowTouch,
    }


  for i = 1, numtornei do

      local isCategory = false
      local rowHeight = 60
      local rowColor = 
      { 
          default = { 255, 255, 0 },
      }
      local lineColor = { 220, 220, 220 }

      -- Make some rows categories
      if i == 25 or i == 50  then
          isCategory = true
          rowHeight = 24
          rowColor = 
          { 
              default = { 150, 160, 180, 200 },
          }
      end

      -- Insert the row into the tableView
      tableView:insertRow
      {
          isCategory = isCategory,
          rowHeight = rowHeight,
          rowColor = rowColor,
          lineColor = lineColor,
      }
  end 


  end

  end

end
end

network.request( dataURL, "GET", listaListener )




end

您需要检查从数据库返回的数据。 如果数据库中的数据为零,请不要插入它。 在您的onRowRender函数中,您应该测试每一个数据位,以确保在您尝试使用创建对象之前它不是零。

另外,你也有潜在的范围问题。 onRowRender()由屏幕上可见的表格行事件驱动。 它不是在for循环内同步调用的。 插入循环可能会在第一行的onRowRender()完成之前完成。 你还在onRowRender()中引用变量“i”,这些行将在行渲染时为零。 如果你的数据库行总是与你的tableView行有1:1的关系(即没有分类行),那么你可以使用行ID在你的数据表中查找你的数据。 如果没有,则应在插入行时使用传入数据的形式。 请参阅:https://coronalabs.com/blog/2014/03/04/tutorial-advanced-tableview-tactics/并查看Passable Parameters部分。

链接地址: http://www.djcxy.com/p/25899.html

上一篇: corona sdk insert row tableview

下一篇: Tableview in corona sdk