Hi guys,
I have five text fields in my scene and when the button next is clicked it sends the data that is inside those five text fields to myData.lua, now the issue i’m having is that if I navigate back to this scene to change my input then click my next button again, the myData.lua values stay the same as my old answer they do not update.
Does anyone know why this is? Here is the code i’m using…
[lua]
–
– incidentReportingPg1.lua
–
local composer = require( “composer” )
local scene = composer.newScene()
local widget = require( “widget” )
local myData = require( “myData” )
local function btnPrevious( event )
composer.gotoScene( “incidentReportingPg1”, { effect=“slideRight”, time=800} )
end
function scene:create( event )
local sceneGroup = self.view
local function textListener( event )
local target = event.target
local maxLen = target.maxLen
local text = event.text
if ( event.phase == “began” ) then
print( text )
else
if( text and string.len( text ) > maxLen ) then – aborts early if text is nil
target.text = string.sub( text, 1, maxLen )
end
end
end
–bg
local bg = display.newRect( 0, 0, display.contentWidth, display.contentHeight )
bg.anchorX = 0
bg.anchorY = 0
bg:setFillColor( 0.9, 0.9, 0.9 ) – white
sceneGroup:insert( bg )
–titleHeader
local titleHeader = display.newImage( “titleHeader.png” )
titleHeader:translate( 160, -22 )
–title
local title = display.newText( “Incident Reporting”, 0, 0, native.systemFont, 32 )
title:setFillColor( 0 ) – black
title.x = display.contentWidth * 0.5
title.y = -25
–textPage
local textPage = display.newText(“Page 2”,
280,130, display.contentWidth -25 , display.contentHeight * 0.5, native.systemFont, 15 )
textPage:setFillColor( 0, 0, 0 )
–textSectionA
local textSectionA = display.newText(“Section A: About the Incident”,
172, 155, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 20 )
textSectionA:setFillColor( 0, 0, 0 )
sceneGroup:insert( textSectionA )
–textDate
local textDate = display.newText(“Incident Date: (DD/MM/YY)”,
175, 190, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 13 )
textDate:setFillColor( 0, 0, 0 )
sceneGroup:insert( textDate )
–textBoxDay
local textBoxDay = native.newTextField( 54, 110, 75, 40 )
textBoxDay.size = 20
textBoxDay:addEventListener( “userInput”, textListener )
textBoxDay.inputType = “number”
textBoxDay.maxLen = 2
sceneGroup:insert( textBoxDay )
–forwardSlash
local forwardSlash = display.newImage( “forwardSlash.png” )
forwardSlash:translate( 105, 110 )
sceneGroup:insert( forwardSlash )
–textBoxMonth
local textBoxMonth = native.newTextField( 156, 110, 75, 40 )
textBoxMonth.size = 20
textBoxMonth:addEventListener( “userInput”, textListener )
textBoxMonth.inputType = “number”
textBoxMonth.maxLen = 2
sceneGroup:insert( textBoxMonth )
–forwardSlash
local forwardSlash = display.newImage( “forwardSlash.png” )
forwardSlash:translate( 207, 110 )
sceneGroup:insert( forwardSlash )
–textBoxYear
local textBoxYear = native.newTextField( 258, 110, 75, 40 )
textBoxYear.size = 20
textBoxYear:addEventListener( “userInput”, textListener )
textBoxYear.inputType = “number”
textBoxYear.maxLen = 2
sceneGroup:insert( textBoxYear )
–textTime
local textTime = display.newText(“Incident Time: (HH:MM)”,
175, 270, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 13 )
textTime:setFillColor( 0, 0, 0 )
sceneGroup:insert( textTime )
–textBoxHour
local textBoxHour = native.newTextField( 54, 190, 75, 40 )
textBoxHour.size = 20
textBoxHour:addEventListener( “userInput”, textListener )
textBoxHour.inputType = “number”
textBoxHour.maxLen = 2
sceneGroup:insert( textBoxHour )
–semiColon
local semiColon = display.newImage( “semiColon.png” )
semiColon:translate( 105, 190 )
sceneGroup:insert( semiColon )
–textBoxMinute
local textBoxMinute = native.newTextField( 156, 190, 75, 40 )
textBoxMinute.size = 20
textBoxMinute:addEventListener( “userInput”, textListener )
textBoxMinute.inputType = “number”
textBoxMinute.maxLen = 2
sceneGroup:insert( textBoxMinute )
–Divider
local divider = display.newImage( “titleHeader.png” )
divider:translate( 160, 240 )
sceneGroup:insert( divider )
–textWasThis
local textWasThis = display.newText(“Was this an incident that caused harm?”,
212, 422, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 13 )
textWasThis:setFillColor( 0, 0, 0 )
sceneGroup:insert( textWasThis )
–textEgPer
local textEgPer = display.newText(“eg personal harm or damage to property”,
212, 437, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 11 )
textEgPer:setFillColor( 0, 0, 0 )
sceneGroup:insert( textEgPer )
–textWasThisA
local textWasThisA = display.newText(“Was this a Near Miss (No Harm)?”,
212, 480, display.contentWidth, display.contentHeight * 0.5, native.systemFont, 13 )
textWasThisA:setFillColor( 0, 0, 0 )
sceneGroup:insert( textWasThisA )
– Image sheet options and declaration
local options = {
width = 26,
height = 26,
numFrames = 2,
sheetContentWidth = 26,
sheetContentHeight = 52
}
local checkboxSheet = graphics.newImageSheet( “checkboxSheet.png”, options )
– Create a group for the radio button set
local radioGroup = display.newGroup()
– Create two associated radio buttons (inserted into the same display group)
local radioButton1 = widget.newSwitch
{
left = 20,
top = 300,
style = “radio”,
id = “RadioButton1”,
width = 26,
height = 26,
onPress = onSwitchPress,
sheet = checkboxSheet,
frameOff = 1,
frameOn = 2
}
radioGroup:insert( radioButton1 )
sceneGroup:insert( radioButton1 )
local radioButton2 = widget.newSwitch
{
left = 20,
top = 353,
style = “radio”,
id = “RadioButton2”,
width = 26,
height = 26,
onPress = onSwitchPress,
sheet = checkboxSheet,
frameOff = 1,
frameOn = 2
}
radioGroup:insert( radioButton2 )
sceneGroup:insert( radioButton2 )
local function OnbtnNext( event )
if event.phase == “ended” then
local radioOn = false
local textFilled = true
myData.dateDay = textBoxDay.text
myData.dateMonth = textBoxMonth.text
myData.dateYear = textBoxYear.text
myData.timeHour = textBoxHour.text
myData.timeMinute = textBoxMinute.text
if radioButton1.isOn == true then
myData.IRb1 = “Yes”
radioOn = true
end
if radioButton2.isOn == true then
myData.IRb1 = “No (Near Miss)”
radioOn = true
end
if textBoxDay.text == “” or textBoxDay.text == nil or
textBoxMonth.text == “” or textBoxMonth.text == nil or
textBoxYear.text == “” or textBoxYear.text == nil or
textBoxHour.text == “” or textBoxHour.text == nil or
textBoxMinute.text == “” or textBoxMinute.text == nil then
textFilled = false
end
if radioOn and textFilled then
composer.gotoScene( “incidentReportingPg3”, { effect=“slideLeft”, time=800,} )
else
local msg
if radioOn == false and textFilled == false then
msg = “No input in checkbox(s) and textbox(s)”
else
if radioOn then
msg = “No input in textbox(s)”
else
msg = “No input in checkbox(s)”
end
end
local alert = native.showAlert( “Warning”, "ERROR: "…msg, { “OK” }, onComplete)
end
end
return true
end
–btnPrevious
local btnPrevious = widget.newButton
{
width = 150,
height = 40,
defaultFile = “btnPrevious.png”,
onEvent = btnPrevious
}
btnPrevious.x = 84
btnPrevious.y = 445
–btnNext
local btnNext = widget.newButton
{
width = 150,
height = 40,
defaultFile = “btnNext.png”,
onEvent = OnbtnNext
}
btnNext.x = 235
btnNext.y = 445
–sceneGroup
sceneGroup:insert( titleHeader )
sceneGroup:insert( title )
sceneGroup:insert( textPage )
sceneGroup:insert( btnNext )
sceneGroup:insert( btnPrevious )
end
function scene:show( event )
local sceneGroup = self.view
end
function scene:hide( event )
local sceneGroup = self.view
end
function scene:destroy( event )
local sceneGroup = self.view
end
– Listener setup
scene:addEventListener( “create”, scene )
scene:addEventListener( “show”, scene )
scene:addEventListener( “hide”, scene )
scene:addEventListener( “destroy”, scene )
return scene
[/lua]