在ArrayList中保存和恢复FragmentActivities

时间:2014-09-01 09:15:42

标签: java android android-activity arraylist onresume

我有一个包含 Activity-A 的列表,每个 Activity-A 都包含不同的值。但是它们都具有相同的类,即 Activity-A 。当用户从活动导航回列表时,我将该活动存储在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);

    }

2 个答案:

答案 0 :(得分:0)

你需要创建一个Static Arraylist对象。

因此,每次进行该活动时,都不会创建ArrayList的新对象

答案 1 :(得分:0)

您可以使用全局变量,但应用程序内存使用量会很大。你在哪里检索数据? Web服务或客户端数据库SQLite?如果从SQLite检索数据,请快速检索时间。如果从Web Service检索,则应保存到SQLite。我不清楚你的问题。给你一个想法。希望得到帮助。

Global Variable Usage