我发展我的第一个Android应用程序使用多个静态的ArrayList,并希望能在这里得到一些提示。通过整个Android应用程序
我得到一个JSONObject
从一个网址,然后将被解析在ArrayList<MyObject>
。该列表将在多个选项卡中使用,并根据需要对选项卡进行过滤。这些列表中的对象可以由用户修改,并且更改应该与列表同步。
所以,加快装载时间我已经创建了一个类DataHolder
作为含有7的ArrayList一个单,从在不同的排序顺序和过滤准则的一个JSONObject
为主。这些列表中的对象是来自原始列表的引用。填充列表工作正常。
该列表将在不同的片段和活动中使用。
现在的问题:第二活动包含片段的标签。在初始化片段之后... DataHolder
中的所有阵列列表都计为0!我必须将JSONObject
保存在SharedPreferences
中,并再次填充以获得List
。我无法再加载网址,因为它会减慢应用程序的运行速度,并且因为需要同步Lists
而不使用SharedPreferences
(我认为)。我已阅读,使用静态变量是不是最佳的解决方案,但它似乎是最简单的方法:(
我能做些什么来解决这个问题?我应该使用Parcelable Objects
始终通过Lists
身边?或者,也许使用SQLite
?还是有其他办法吗?本地操作
目前尚不清楚,你是如何做到这一点 - 是你的'DataHolder'一个POJO还是你延长'Activity'或者是它的内部静态类第一个'Activity'的?如果它不是第二个,那么这绝对不是你应该做的。一个'Activity'永远不应暴露静态方法或成员变量或Activity的内部类。 – Squonk
创建一个'Application'类,并把实例内的数据(你可以在指定'的onCreate()'实例) http://developer.android.com/reference/android/app/Application.html 需要也要在清单中声明 – sherpya
My DataHolder是一个POJO。我已经测试了用相同的结果扩展应用程序。该片段被用作后,名单是0 :(。 – Diana