0

我的应用修改了移动平台上的用户代理字符串。(用户代理工具)

让用户自定义他们的预设列表会很好。我想知道哪种方式来存储内容是最好的。

所需操作:加载列表、添加元素、删除元素、更改元素顺序、保存列表。

考虑使用 XML,因为有 XmlListModel 可用。但是有什么更好的吗?如果xml是最好的,从qml方面可以轻松操作xml吗?

谢谢

/编辑:我的功能是这样的:

function getDatabase() {return openDatabaseSync("UserAgentTool", 1.0, "User Agent Tool", 10000); }


function getList()
{
    var db = getDatabase();
    var ret
    db.transaction( function (tx)
    {
        ret = tx.executeSql("SELECT * FROM UserAgents")
    })

    return ret
}

function addToList(ualabel, uastring)
{
    var db = getDatabase();
    db.transaction(function (tx)
    {
        tx.executeSql('CREATE TABLE IF NOT EXISTS UserAgents(ualabel TINYTEXT UNIQUE, uastring TEXT)')
        var ret = tx.executeSql("INSERT OR REPLACE INTO UserAgents VALUES(?, ?)", [ualabel, uastring])
        if (ret.rowsAffected <= 0) sqlError();
    })

}

signal sqlError()

如何使用 getList 数据中的选定项填充 ListView?

谢谢

编辑:这不起作用:

ListView
{
    anchors.fill: parent
    id: uaview
    model: uamodel
    delegate: Button { text: model.ualabel}
}

错误是:Unable to assign [undefined] to QString text

4

1 回答 1

2

使用 XmlListModel,您将无法仅使用 QML 轻松修改数据,但非常易于阅读。如果您需要读写,并且只想使用 QML,我建议您使用 ListModel 作为工作模型并将数据缓存到 LocalStorage(它目前是一个带有表的 SQLite 数据库文件,非常经典)。

这是本地存储的文档

于 2013-06-24T08:05:14.857 回答