我目前正在创建像宠物小精灵这样的怪物收集游戏。那里会有100个怪物。我很困惑如何储存怪物'静态核心数据,如初始HP,图标等。将它们存储在数据库中并在每次切换到另一个活动时检索数据都没有意义,因为这些静态数据不会发生变化。
我一直在考虑一些解决方案:
使用静态类。类似的东西:
public class StaticClass {
public String[] name = ['A', 'B', 'C', ...] // 100 entries
public int[] initialHP [100, 200, 300, ...] // 100 entries
// name[i], initialHP[i] would be the identity of i-th monster
}
只从DB中检索一次JSON,然后将数据保存到SharedPreferences中。
老实说,我认为这两种方法都不好。第一种方法需要大量写入,另一种方法会将相当大的数据保存到SharedPreferences中。我很确定会有更好的方法。
答案 0 :(得分:0)
将它们存储在数据库中并在每次切换到另一个活动时检索数据都没有意义,因为这些静态数据不会发生变化。
我不同意见。你最好的选择(也是最快的)是将它存储在SQLite数据库中。
为了让自己更轻松,请为数据库相关工作单独创建一个类。此外,您可以使用任何third-party SQLite DB browser手动创建数据库。然后,您可以轻松地发送预制的SQLite数据库并将其作为资产发送。在安装应用程序后,此数据库将作为一次性过程进行设置。使用这个非常有用的帮手:Android SQLiteAssetHelper
如果您不想一次又一次ping数据库,则可以在应用启动时在全局arrayList
中检索所有这些数据。要创建完全全局arrayList
,请创建一个扩展MyApplication.java
的新类Application
。在此课程的arrayList
方法中初始化您的onCreate()
。