在Android中存储静态数据 - 自定义资源?

Nic*_*win 19 xml android android-pullparser android-parser android-resources

我是Android开发的新手,我一直在玩它.我试图创建一个程序,该程序具有类似数据库的小型永不变化数据集合.在C#中,我目前最好的语言,我使用自定义类的列表并将其序列化为xml文件,然后在运行时将其读入我的应用程序.我在Android中找到了/ xml资源文件夹,但我不确定如何去做我想象的事情.这样做最好的方法是什么?

数据永远不需要改变.例:

Blob   | A  | B
----------------
Blob 1 | 23 | 42
Blob 2 | 34 | 21
Run Code Online (Sandbox Code Playgroud)

我知道它的布局就像一张桌子,但使用数据库对我来说并没有多大意义,因为数据永远不会改变,我需要一种方法来存储它,无论如何最初填充数据库.

所以基本上我正在寻找一种在我的应用程序中存储有些复杂的静态数据的方法.有任何想法吗?

编辑:我也看到了/ raw文件夹.所以我可以将东西存储在/ res/raw或/ res/xml中.但我不确定存储/解析数据的最佳方法是什么......

Par*_*ani 16

我认为这是最好的解决方案,我已经在使用这个解决方案在我的每个项目中存储静态数据.

为此...你可以做一件事,制作一个xml文件即"temp.xml"..并将数据存储在temp.xml中,如下所示:

  <?xml version="1.0" encoding="utf-8"?> 
<rootelement1>

    <subelement> Blob 1  
     <subsubelement> 23 </subsubelement>
     <subsubelement> 42 </subsubelement> 
    </subelement>

    <subelement>Blob 2      
    <subsubelement> 34 </subsubelement>
    <subsubelement> 21 </subsubelement>
    </subelement>


    </rootelement1>
Run Code Online (Sandbox Code Playgroud)

然后使用XML PullParser技术来解析数据.你可以在Example上有PullParsing技术的编码样本,请参考这个例子以获得更好的想法.

请享用!!


Cod*_*ile 15

最好的方法是使用Android Resource Heirarchy.

在res/values /目录中,您可以为几种基本数据类型存储任意数量的键值对.在您的应用程序,你会参考他们使用自动生成的资源ID(根据你的资源的键名).请参阅上面的链接以获取更多文档和详细信息

Android还支持原始数据文件.您可以将数据存储在res/raw/yourfile.dat下的文件目录中

您可以使用任何基于文本的格式创建数据,然后使用资源访问apis在活动启动时读取它.

  • @NickAldwin是的."http://developer.android.com/reference/android/content/res/Resources.html#getXml(int)" (2认同)