【问题标题】:Beginning android: how to map a string to a list开始android:如何将字符串映射到列表
【发布时间】:2011-06-06 08:40:34
【问题描述】:

我刚刚完成了 Android 应用程序的 NotepadV1-3 教程,我正在考虑创建我自己的库存应用程序来娱乐,现在它基本上包含一个名称列表(例如“DVD”或“Grocery”),每个都可以单击,这将显示与该名称关联的另一个特定列表。但是,使用 SQLiteDatabase.insert(..) 方法,ContentValue 只能(以及许多其他)“String,String”作为参数,我不知道如何将与关联的字符串列表输入数据库一个特定的键。由于我对 SQL 不太熟悉,因此无法研究如何解决此问题。

存储键及其关联的字符串列表的最佳方式是什么?

感谢任何指针和建议!

安卓新手:[

【问题讨论】:

    标签: android string list key


    【解决方案1】:

    您能做的最好的事情是创建一个不需要您将列表输入为“字符串”的数据库设计。您可能(我一直没有想到这一点)有一个包含列表(id 和 listName)的表和另一个包含内容的表(id 和 contentName),最后是一个连接两者的表(tableId 和 contentName)。

    如果您真的想存储该字符串,您可以将它序列化为一个字符串,然后当您从数据库中读取它时,您可以重建该字符串。但不建议这样做。

    (更简单的)数据库示例

    Table 1 "lists": listId, listName
    Table 2 "items": itemId, itemName, listId 
    

    例如:

    Lists:
    listId  listName
    1       DVD's
    2       Grocery
    
    Items
    itemId   itemName   listId
    1        film1      1
    2        film2      1
    3        sugar      2
    4        milk       2
    

    您可以通过以下方式找到购物清单中的所有项目:

    SELECT i.itemName 
    FROM lists l 
    JOIN items i ON l.listId = i.listId
    WHERE l.listName='Grocery'
    

    【讨论】:

    • 嗯,我想 tokenize/rebuild string 将是我的备用计划,因为我现在并没有真正追求效率,只是为了好玩,看看 Android 框架是如何工作的。我不确定如何链接这两个表,尤其是当不同的列表具有不同数量的元素等时,除非我为每个列表创建一个新表。
    • 查看添加的示例以快速解决 2 个表格 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多