Module ui.widget.multiinputdialog
Widget for taking multiple user inputs.
Example for input of two strings and a number:
local MultiInputDialog = require("ui/widget/multiinputdialog") local UIManager = require("ui/uimanager") local _ = require("gettext") local sample_input sample_input = MultiInputDialog:new{ title = _("Title to show"), fields = { { description = _("Describe this field"), -- input_type = nil, -- default for text text = _("First input"), hint = _("Name"), }, { text = "", hint = _("Address"), }, { description = _("Enter a number"), input_type = "number", text = 666, hint = 123, }, }, buttons = { { { text = _("Cancel"), id = "close", callback = function() UIManager:close(sample_input) end }, { text = _("Info"), callback = function() -- do something end }, { text = _("Use settings"), callback = function(touchmenu_instance) local fields = sample_input:getFields() -- check for user input if fields[1] ~= "" and fields[2] ~= "" and fields[3] ~= 0 then -- insert code here UIManager:close(sample_input) -- If we have a touch menu: Update menu entries, -- when called from a menu if touchmenu_instance then touchmenu_instance:updateItems() end else -- not all fields where entered end end }, }, }, } UIManager:show(sample_input) sample_input:onShowKeyboard()
It is strongly recommended to use a text describing the action to be executed, as demonstrated in the example above. If the resulting phrase would be longer than three words it should just read "OK".