我在跨活动在Application
类中存储List
问题时遇到问题。在活动之间共享ArrayList
在我的启动画面中,我将数据从MySQL
数据库加载到List
。
List
是一个名为Rateit
的类,extends Application
。我这样做是在它作为一个类变量:
public static List<String> masterCats;
在Splash Screen活动/类,我这样做:
在onCreate
:
Rateit.masterCats = new ArrayList<String>();
里面我的AsyncTask的环中加载数据我这样做:
Rateit.masterCats.add(cat);
cat
是列表项目tha t来自数据库。我有Log.d
的数据(cat
)以及ListPosition来检查它是否被添加到List
它是。
但是,我需要在接下来的Activity
中抓取相同的信息并将其放入adapter
。它返回0长度。
我只是这样做:adapter = new MasterCatAdapter(getActivity(), Rateit.masterCats, tf);
为什么列表不保持整个活动比较数据?这是因为它的static
?别的东西?
(注:这里我将很快添加getter和setter方法!)
不要惹访问此列表静态变量。持久存储。如果您的ArrayList很小,即使通过意图传递也是可行的。 – 2013-03-04 21:47:13
我希望你不要指SQLite?或者是SharedPreferences更好的选择? – KickingLettuce 2013-03-04 21:48:09
根据这篇文档,当使用静态变量时,Android的行为本身是正确的:http://developer.android.com/guide/faq/framework.html 难道是在别的地方清除静态变量吗? – 2013-03-04 22:04:47