我想创建一个有按钮的应用程序,每次单击此按钮时,屏幕上会显示一些随机预设消息。我该如何存储这些预设信息?我应该使用SQLite数据库还是应该创建一个填充了消息的数组并从那里检索消息?
我不是在寻找代码。我只想提供一些提示,建议,或者某人给我指出一些可能对我有用的文档。
答案 0 :(得分:1)
哦,我的第一直觉是开始抽出一些代码,但是既然你想看看一些不同的选项,那么我能想到的就是
数组:硬编码所有预设消息的Array
,然后使用presetString [RandomNumber]制作Toast消息。没什么太花哨的。几乎是直接的Java,带有添加的toast消息。 (有关显示消息的Toast消息和其他选项的信息,请访问:http://developer.android.com/guide/topics/ui/notifiers/index.html)
优点:简单。很容易看到代码,看看你的目标是什么。缺点:对于很长的列表处理数组是很麻烦的,未来的更新会变得很麻烦。此外,您很难有效地在程序的任何其他部分使用它。
strings.xml:http://developer.android.com/guide/topics/resources/string-resource.html在我看来,Strings.xml是更多“Android Developer”方法。您使用所有可能的消息创建一个消息,然后通过资源名称将其加载到您的应用程序中。从那里它只是一个数组,您可以执行您通常会执行的相同操作。 优点:由于它位于具有资源标识符的集中位置,因此程序的任何部分都可以使用它。具有与数组相同的基本功能 缺点:.apk文件已签名,因此,您的资源无法在运行时进行修改。您在此处输入的消息无法添加或更改
其他存储类型如JSON可用。这些类似于strings.xml,除了更多的正面;它们很容易从远程服务器加载。您的应用程序可以进行远程调用以请求完整数组并从那里解析http://damonsk.com/2010/01/jsonarray-httpclient-android/
最后,您可以执行SQLLite数据库。对于这样一个简单的看似应用程序来说,使用它们需要大量的开销。如果您正在寻找持久解决方案(一种可以保持数据不被使用)并且可以更改,那么这将是首选。比如说,您想让用户能够添加新条目,或者让用户更改消息或删除他们不喜欢的消息,那么这是合适的解决方案。主要关注当然是真的有必要吗?但如果是,那么您可以在其上找到更多文档here或here (shows you how to copy a SQLLIte db请注意,虽然在Android 2.2上有一个错误可以阻止您添加大小超过1兆字节的文件作为资产,所以如果你真的有很多要添加的消息,你需要使用这项工作here
答案 1 :(得分:0)
如果用户可以创建新消息,那么使用数据库是有意义的,但如果消息附带.apk文件,则只需将它们作为资源包含,将它们存储为.json或.xml文件。
这还取决于您是否需要能够根据一天中的时间或位置选择消息,那么您可能需要多个文件或使用数据库。
如果你使用了数据库,你可以从文件或网址中提取信息来填充它,因此,因为数据已经存在于带有.apk文件的文件中,所以如果你不这样做,就不要复制它。需要。