0

所以我的应用程序重用了很多活动。最初,当我在活动之间切换时,我只是简单地添加一个“fromClass”行作为 Intents 的额外内容。现在的问题是我需要知道我之前从几个活动开始的课程,以便正确显示当前活动的信息。我试图使用一个字符串数组列表来存储顺序并在我向后退时将它们从列表中删除,但是我无法将字符串转换为类名并正常工作。

在活动开始时,我添加以下方式:

Global.appNavigation.add("SecondActivity.class")

当我调用 onBackPressed() 时,我正在这样做:

/* Remove Last Object (this class) */
    Globals.appNavigation
            .remove(Globals.appNavigation.size() - 1);
    try {
        Class<?> c = Class.forName(Globals.applicationNavigation
                .get(Globals.appNavigation.size() - 1));
        Activity obj = (Activity) c.newInstance();
        Intent i = new Intent(mActivity, c);
        startActivity(i);
        finish();
    } catch (ClassNotFoundException e) {
        Log.e("Back", "Could not get a class name");
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我不断收到 ClassNotFoundException。有一个更好的方法吗?我正在使用的这个应用程序变得非常大,所以在这种情况下不调用 finish() 到一个活动可能不起作用。

4

1 回答 1

0

我最终调用了“finish()”方法,但在跟踪需要持久化的数据方面做得更好。

感谢 Ben Von Handorf 的建议(参见原始问题的评论 1 和 3)

于 2012-07-31T21:34:22.687 回答