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".

Functions

MultiInputDialog:getFields () Returns an array of our input field's text field.
MultiInputDialog:getRawFields () BEWARE: Live ref to an internal component!


Functions

MultiInputDialog:getFields ()
Returns an array of our input field's text field.
MultiInputDialog:getRawFields ()
BEWARE: Live ref to an internal component!
generated by LDoc 1.5.0 Last updated 2024-04-18 11:30:11