Hi to all.
I’m making an app with corona SDK, and I’ve this problem: THe app works fine on emulator but it does’t work on my samsung galaxy SII (with android 2.3.5)
so, my app is composed from a 4-5 list. Every time that i click on a itemlist, a new scene is called (with storyboard.gotoScene()) with the element of the new list. The scene are a lists of supermarket. In the first list, I’ve the Region, in the second the province of the regions, in the third the cities of the provinces, in the fourth the lists of the supermarket of that city.
i post my code, so I hope that someone can help me…
TROVA_REGIONE.LUA
module(..., package.seeall)
local json = require("json")
local listItems
local itemSelected
local titleText
local shadow
local titleBar
local backButton
local list
local rowGroup
local widgetGroup
local storyboard = require( "storyboard" )
local scene = storyboard.newScene()
local jsonFile = function( filename, base )
if not base then base = system.ResourceDirectory; end
local path = system.pathForFile( filename, base )
local contents
local file = io.open( path, "r" )
if file then
contents = file:read( "\*a" )
io.close( file )
end
return contents
end
local function networkListener( event )
if ( event.isError ) then
print( "Network error!")
else
print ( "RESPONSE: " .. event.response )
local toDecode = event.response
listItems = json.decode(toDecode )
display.setStatusBar( display.HiddenStatusBar )
local widget = require("widget")
widget.setTheme( "theme\_ios" )
local toolbarGradient = graphics.newGradient( {168, 181, 198, 255 }, {139, 157, 180, 255}, "down" )
titleBar = widget.newTabBar{
gradient = toolbarGradient,
bottomFill = { 117, 139, 168, 255 },
height = 44
}
titleBar.y = display.screenOriginY + titleBar.contentHeight \* 0.5
titleText = display.newEmbossedText( "Elenco regione", 0, 0, native.systemFontBold, 20 )
titleText:setReferencePoint( display.CenterReferencePoint )
titleText:setTextColor( 255 )
titleText.x = 160
titleText.y = titleBar.y
shadow = display.newImage( "images/shadow.png" )
shadow:setReferencePoint( display.TopLeftReferencePoint )
shadow.x, shadow.y = 0, titleBar.y + titleBar.contentHeight \* 0.5
shadow.xScale = 320 / shadow.contentWidth
shadow.alpha = 0.45
itemSelected = display.newText( "Hai selezionato", 0, 0, native.systemFontBold, 24 )
itemSelected:setTextColor( 0 )
itemSelected.x = display.contentWidth + itemSelected.contentWidth \* 0.5
itemSelected.y = display.contentCenterY
widgetGroup:insert( itemSelected )
list = widget.newTableView{
width = 320,
height = 448,
bottomPadding = 8,
maskFile = "images/mask-320x448.png"
}
list.y = titleBar.y + titleBar.contentHeight \* 0.5
widgetGroup:insert( list )
widgetGroup:insert( titleBar )
widgetGroup:insert( titleText )
widgetGroup:insert( shadow )
local rowTitles = {}
local function onRowRender( event )
local row = event.row
rowGroup = event.view
local label = rowTitles[row.index]
local color = 0
if row.isCategory then
color = 255
end
row.itemName = label
row.textObj = display.newRetinaText( rowGroup, label, 0, 0, native.systemFontBold, 16 )
row.textObj:setTextColor( color )
row.textObj:setReferencePoint( display.CenterLeftReferencePoint )
row.textObj.x, row.textObj.y = 20, rowGroup.contentHeight \* 0.5
rowGroup:insert( row.textObj )
row.arrow = display.newImage( "images/rowArrow.png", false )
row.arrow.x = rowGroup.contentWidth - row.arrow.contentWidth \* 2
row.arrow.y = rowGroup.contentHeight \* 0.5
rowGroup:insert( row.arrow )
end
local function onBackRelease()
--transition.to( list, { x = 0, time = 400, transition = easing.outExpo } )
--transition.to( itemSelected, { x = display.contentWidth + itemSelected.contentWidth \* 0.5, time = 400, transition = easing.outExpo } )
--transition.to( backButton, { x = 60, alpha = 0, time = 400, transition = easing.outQuad } )
storyboard.gotoScene("menu")
end
backButton = widget.newButton{
style = "backSmall",
label = "Back",
yOffset = - 3,
onRelease = onBackRelease
}
backButton.alpha = 0
backButton.x = 60
backButton.y = titleBar.y
widgetGroup:insert( backButton )
local function onRowTouch( event )
local row = event.row
local background = event.background
if event.phase == "press" then
background:setFillColor( 0, 110, 233, 255 )
elseif event.phase == "release" or event.phase == "tap" then
\_G.nomeRegione = row.itemName
storyboard.gotoScene( "trova\_provincia\_per\_regione" )
end
end
rowTitles[#rowTitles + 1] = "seleziona regione"
list:insertRow{
height = 24,
rowColor = { 150, 160, 180, 200 },
onRender = onRowRender,
isCategory = true,
}
for j = 1, #listItems.regione do
rowTitles[#rowTitles + 1] = listItems.regione[j]
list:insertRow{
height = 72,
onRender = onRowRender,
isCategory = false,
listener = onRowTouch
}
end
transition.to( backButton, { x = 40, alpha = 1, time = 400, transition = easing.outQuad } )
end
end
function scene:createScene( event )
widgetGroup = self.view
jsonFile( network.request( "http://www.aperturecentricommerciali.it/iphone/regioneJson.asp", "POST", networkListener) )
-- local prior\_scene = storyboard.getPrevious()
-- storyboard.purgeScene( prior\_scene )
-- storyboard.purgeAll()
end
function scene:enterScene(event)
local prior\_scene = storyboard.getPrevious()
storyboard.purgeScene( prior\_scene )
end
function scene:didExitScene(event)
storyboard.purgeScene("trova\_regione")
end
function scene:exitScene(event)
list:removeEventListener("onRowTouch", list)
--Runtime:removeEventListener( "trova\_regione")
end
function scene:destroyScene(event)
end
scene:addEventListener( "createScene", scene )
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener( "destroyScene", scene )
scene:addEventListener( "didExitScene", scene )
return scene
TROVA_PROVINCIA_PER_REGIONE.LUA
module(..., package.seeall)
local json = require("json")
local listItems
local itemSelected
local titleText
local shadow
local titleBar
local backButton
local list
local rowGroup
local widgetGroup
local storyboard = require( "storyboard" )
local scene = storyboard.newScene()
local jsonFile = function( filename, base )
if not base then base = system.ResourceDirectory; end
local path = system.pathForFile( filename, base )
local contents
local file = io.open( path, "r" )
if file then
contents = file:read( "\*a" )
io.close( file )
end
return contents
end
local function networkListener( event )
if ( event.isError ) then
print( "Network error!")
else
print ( "RESPONSE: " .. event.response )
local toDecode = event.response
listItems = json.decode(toDecode )
display.setStatusBar( display.HiddenStatusBar )
local widget = require("widget")
widget.setTheme( "theme\_ios" )
local toolbarGradient = graphics.newGradient( {168, 181, 198, 255 }, {139, 157, 180, 255}, "down" )
titleBar = widget.newTabBar{
gradient = toolbarGradient,
bottomFill = { 117, 139, 168, 255 },
height = 44
}
titleBar.y = display.screenOriginY + titleBar.contentHeight \* 0.5
titleText = display.newEmbossedText( "Elenco provincia", 0, 0, native.systemFontBold, 20 )
titleText:setReferencePoint( display.CenterReferencePoint )
titleText:setTextColor( 255 )
titleText.x = 160
titleText.y = titleBar.y
shadow = display.newImage( "images/shadow.png" )
shadow:setReferencePoint( display.TopLeftReferencePoint )
shadow.x, shadow.y = 0, titleBar.y + titleBar.contentHeight \* 0.5
shadow.xScale = 320 / shadow.contentWidth
shadow.alpha = 0.45
itemSelected = display.newText( "You selected", 0, 0, native.systemFontBold, 24 )
itemSelected:setTextColor( 0 )
itemSelected.x = display.contentWidth + itemSelected.contentWidth \* 0.5
itemSelected.y = display.contentCenterY
widgetGroup:insert( itemSelected )
list = widget.newTableView{
width = 320,
height = 448,
bottomPadding = 8,
maskFile = "images/mask-320x448.png"
}
list.y = titleBar.y + titleBar.contentHeight \* 0.5
widgetGroup:insert( list )
widgetGroup:insert( titleBar )
widgetGroup:insert( titleText )
widgetGroup:insert( shadow )
local rowTitles = {}
local function onRowRender( event )
local row = event.row
rowGroup = event.view
local label = rowTitles[row.index]
local color = 0
if row.isCategory then
color = 255
end
row.itemName = label
row.textObj = display.newRetinaText( rowGroup, label, 0, 0, native.systemFontBold, 16 )
row.textObj:setTextColor( color )
row.textObj:setReferencePoint( display.CenterLeftReferencePoint )
row.textObj.x, row.textObj.y = 20, rowGroup.contentHeight \* 0.5
rowGroup:insert( row.textObj )
row.arrow = display.newImage( "images/rowArrow.png", false )
row.arrow.x = rowGroup.contentWidth - row.arrow.contentWidth \* 2
row.arrow.y = rowGroup.contentHeight \* 0.5
rowGroup:insert( row.arrow )
end
local function onBackRelease()
-- transition.to( list, { x = 0, time = 400, transition = easing.outExpo } )
-- transition.to( itemSelected, { x = display.contentWidth + itemSelected.contentWidth \* 0.5, time = 400, transition = easing.outExpo } )
-- transition.to( backButton, { x = 60, alpha = 0, time = 400, transition = easing.outQuad } )
storyboard.gotoScene("trova\_regione")
end
backButton = widget.newButton{
style = "backSmall",
label = "Back",
yOffset = - 3,
onRelease = onBackRelease
}
backButton.alpha = 0
backButton.x = 60
backButton.y = titleBar.y
widgetGroup:insert( backButton )
local function onRowTouch( event )
local row = event.row
local background = event.background
if event.phase == "press" then
background:setFillColor( 0, 110, 233, 255 )
elseif event.phase == "release" or event.phase == "tap" then
\_G.nomeProvincia = row.itemName
storyboard.gotoScene( "trova\_citta\_per\_provincia" )
end
end
rowTitles[#rowTitles + 1] = "seleziona provincia"
list:insertRow{
height = 24,
rowColor = { 150, 160, 180, 200 },
onRender = onRowRender,
isCategory = true,
}
for j = 1, #listItems.provincia do
rowTitles[#rowTitles + 1] = listItems.provincia[j]
list:insertRow{
height = 72,
onRender = onRowRender,
isCategory = false,
listener = onRowTouch
}
end
transition.to( backButton, { x = 40, alpha = 1, time = 400, transition = easing.outQuad } )
end
end
function scene:createScene( event )
widgetGroup = self.view
jsonFile( network.request( "http://www.aperturecentricommerciali.it/iphone/provinciaJson.asp?regione="..\_G.nomeRegione, "POST", networkListener) )
-- local prior\_scene = storyboard.getPrevious()
-- storyboard.purgeScene( prior\_scene )
-- storyboard.purgeAll()
end
function scene:enterScene(event)
local prior\_scene = storyboard.getPrevious()
storyboard.purgeScene( prior\_scene )
end
function scene:didExitScene(event)
storyboard.purgeScene("trova\_provincia\_per\_regione")
end
function scene:exitScene(event)
list:removeEventListener("onRowTouch", list)
-- Runtime:removeEventListener( "trova\_provincia\_per\_regione")
end
function scene:destroyScene(event)
end
scene:addEventListener( "createScene", scene )
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener( "destroyScene", scene )
scene:addEventListener( "didExitScene", scene )
return scene
the other lists… only change the paramethers… so… please… help me.
regards [import]uid: 147950 topic_id: 32312 reply_id: 332312[/import]