通过整个Android应用程序使用多个静态ArrayLists

时间:2012-08-23 19:39:03

标签: android sqlite arraylist sharedpreferences parcelable

我正在开发我的第一个Android应用程序,并希望在这里得到一些提示。

我从网址获取JSONObject,然后将在ArrayList<MyObject>中解析。该列表将在多个选项卡中使用,并根据选项卡的需要进行过滤。用户可以修改这些列表中的对象,并且应该与列表同步更改。

所以,为了加快加载时间,我创建了一个类DataHolder作为一个包含7个arraylist的单例,基于不同排序顺序和过滤条件的JSONObject。这些列表中的对象是原始列表中的引用。填充列表工作正常。

列表将用于不同的片段和活动。

现在问题是:第二个活动包含带有片段的标签。初始化片段后...... DataHolder中的所有arraylists都计为0!我必须在JSONObject中保存SharedPreferences并再次填充以获取List。我无法再次加载该网址,因为它正在减慢应用程序的速度,并且使用SharedPreferences不是一个选项(我认为),因为需要同步Lists。我已经读过使用静态变量不是最佳解决方案,但它似乎是最简单的方法:(

我该怎么做才能解决这个问题?我应该使用Parcelable Objects并始终通过Lists吗?或者可以使用SQLite?还是有其他方法吗?

2 个答案:

答案 0 :(得分:0)

使用静态列表进行本地操作。当用户离开该屏幕(活动)时,将该更改保存到数据库中。

答案 1 :(得分:0)

SQLite的方式绝对是正确的方法,imho。

您应该使用内部数据库来存储此类列表: http://developer.android.com/guide/topics/data/data-storage.html#db