保存并恢复ArrayList中的片段活动性
我有一个包含的列表活动-A,每个活动-A里面有不同的值。然而他们都有相同的班级,这是Activity-A。当用户从活动导航回列表时,我将该活动存储在ArrayList中,并在用户再次单击列表中的同一活动时检索并将其作为意图启动。但是,这会导致它重新创建。我希望它从存储在ArrayList中的状态恢复。我怎样才能做到这一点?保存并恢复ArrayList中的片段活动性
编辑:我听说过FragmentManager,它如何轻松存储和检索片段。然而,有没有像FragmentManager的活动? ActivityManager是否像FragmentManager?
编辑:当它被从国家停止
- 保存FragmentActivity到一个ArrayList:要澄清我的问题有点多,我想。
但是,当我导航到存储在ArrayList中的FragmentActivity时,FragmentActivity从头开始重新创建,而不是从其以前的状态恢复。
我明白我必须做一些事情来保存它的状态。但是,我怀疑我可以保存所有内容;里面有很多碎片。
下面的代码:
listItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showActivity(id);
}
private void showActivity(int id) {
ActivityA activityA = StaticLab.get(getActivity())
.getActivityA(id); // getActivityA simply returns the ActivityA from the ArrayList which contains the specified id
if (activityA == null) {
createNewActivityA()
}
Intent i = new Intent(getActivity(), activityA.getClass());
startActivity(i);
}
你需要一个箱子Static
ArrayList对象。
所以每次你来对活动时间,你不创建的ArrayList
ArrayList static ... – 2014-09-01 10:07:17
的新对象,您可以使用全局变量,但你的应用程序的内存使用量会很大。你在哪里检索数据? Web服务或客户端数据库SQLite?如果你从SQLite检索数据,检索时间如此之快。如果您从Web Service检索,则应保存到SQLite。我不清楚你的问题。只是给你想法。希望获得帮助。
谢谢,但我不太清楚我明白你在说什么。如果您指的是存储活动的位置,则它们存储在ArrayList中。它包含的东西不能放入SQLite中。 – sm123 2014-09-01 10:22:44
您可以尝试使用全局变量。在活动状态下你想存储数组列表?我认为这不可能。你可以阅读活动生命周期.http://developer.android.com/reference/android/app/Activity.html – 2014-09-01 10:35:29
我不太清楚你使用全局变量是什么意思。包含ArrayList的类是静态的,所以它没有多个副本。当我导航到ListView时,活动调用onStop(),但是当我通过意图导航回到它时,它会再次调用onCreate(),而不是onStart(),我认为这可能是由于使用Intent。 startActivity(i) – sm123 2014-09-01 10:39:55
你能更具体的查询和分享一些代码吗? – 2014-09-01 09:19:32
好的,我做到了! :) – sm123 2014-09-01 10:25:55