2012-11-10 73 views
0

我是Android开发的新手,我正在开发一个备忘录/笔记记录应用程序,允许用户包含井号标签,然后通过所述井号标签浏览保存的笔记。在SQLite中存储arraylist的arraylist

我已经有一个笔记应用程序工作,只保存在SQLite数据库中的笔记,但我打算通过在每个笔记对象(已存储在数组列表中)中包含hashtags的数组列表来存储hashtags。 ..

我的问题是,我将如何去存储这些ArrayList的列表(注意hashtag arraylists arraylist)到SQLite数据库?

+1

欢迎使用stackoverflow。你可能想用你可能试过的一些实际代码尝试一些问题,但没有奏效。征求意见和指导不是范围stackoverflow – Ahmad

+0

此外,看看我们的常见问题:http://stackoverflow.com/faq – ForceMagic

回答

2

假设你有一个用于笔记的sql表,你应该创建另一个表来存储hashtags。您可以通过预订一列来存储hashtag所属的音符ID,从而将每个hashtag链接到它的音符。结构应该是基本上是这样的:

注表:

note_id | note 

#标签表:

hashtag_id | hashtag | note_id 
1

这里有一个简单的方法:只储存您所有的主题标签为一个字符串。

例如,假设一个音符都有4#标签 - #study, #homework, #school, #math

所以,你只需将它们存储为像一个字符串:

String hastags="study#homework#school#math" 

现在这个字符串中的SQLite DATABSE存储作为hastag列每个音符对象。

Java允许您轻松解析字符串,因此当您检索笔记时,可以获取它的hashtag列,并根据分隔字符(“#”)将其分隔为一个字符串数组(每个哈希标签包含一个字符串元素)在这种情况下),像这样:

String hastags[]= hashtagStringFromDB.split("#"); 

现在,你有在一个字符串数组,笔记对象,你可以通过轻松使用hashtag[0], hashtag[1]...etc

另一个选项是创建你的所有的井号标签另一个hashtags表。每个哈希标签都带着一个唯一的标识符(外键)进入该表,以将其链接到notes表中的一个音符。因此,您可以使用特定笔记的note_id查询此表,并且它将返回属于该笔记的所有井号标签。