Marshall10001
Marshall10001

Reputation: 45

Saving the value of a stepper in Corona SDK to a json file

I want to be able to pass the value from a stepper widget in corona into a json file. So far I've got my stepper to display and increment and decrement and display the current value on screen. I've written a function to save the value to a file as json, but i'm having trouble calling that function. I want to be able to have other setting on screen which have their values save to json. Here the code I have to save the setting:

local function saveSettings  (e)
    -- body
print("testtesttest")
    if (file) then
        local content = file:read("*a")

    else
        settings = {}
        settings.houses = StepperNo 
        file = io.open(path, "w")
        local json_setting = json.encode(settings)
        file:write(json_setting)
        io.close(file)
    end
end

and then the code to display the stepper:

local StepperNo = 1
local displayNoOfHouses = display.newText("Number of houses: "..StepperNo,180,135, native.systemFontBold,16)    
local function onStepperPress( e )

    if ("increment" == e.phase) then
        StepperNo = StepperNo + 1
    elseif ("decrement") == e.phase then
        StepperNo = StepperNo - 1
    end

    displayNoOfHouses.text = "Number of houses: "..StepperNo

end

local HouseStepper = widget.newStepper {left = 100, top = 100, minimumValue = 0, maximumValue = 9, onPress = onStepperPress}

I dont know how to call the savesetting function after the stepper is pressed. I think I might have done this incorrectly or may be missing something obvious, I am very new to Lua...

Upvotes: 0

Views: 102

Answers (1)

Rob Miracle
Rob Miracle

Reputation: 3063

There is a very simple to implement table saver and loader presented in this tutorial:

http://coronalabs.com/blog/2014/10/14/tutorial-saving-and-loading-lua-tables-with-json/

It uses JSON to encode a Lua table to save and when needed, read the JSON back in and decode it to a Lua table.

Upvotes: 1

Related Questions