将Corona SDK中步进器的值保存到json文件中

时间:2015-02-08 18:47:25

标签: android json lua corona

我希望能够将电晕中的步进窗口小部件中的值传递给json文件。到目前为止,我已经让我的步进器显示,递增和递减并在屏幕上显示当前值。我已经编写了一个函数来将值保存为json文件,但是我无法调用该函数。我希望能够在屏幕上进行其他设置,将其值保存到json。这里我需要保存设置的代码:

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

然后显示步进器的代码:

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}

我不知道在按下步进器后如何调用savesetting函数。我想我可能做错了,或者可能遗漏了一些明显的东西,我对Lua来说很新......

1 个答案:

答案 0 :(得分:1)

本教程中提供了一个非常简单的实现表格保护程序和加载程序:

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

它使用JSON对要保存的Lua表进行编码,并在需要时读回JSON并将其解码为Lua表。