1

在我正在制作的应用程序中,我的 MainMenu 活动中有一个名为 Preferences 的类的对象。我想在几个页面中使用这个对象。在对象中是一个包含数字数组的类。当我在另一个活动(电影)中使用它时,它会更改对象中的一个数字。然后我返回主菜单并进入一个新活动(CurrentPrefs),在该活动中我在屏幕上显示数字数组。当我显示数字时,它们不包含在电影文件中所做的更改。所以我开始对变量进行一些测试。

当我启动作为启动活动的 MainMenu 时,它会设置对象。然后,当我进入电影并检查对象时,它仍然具有相同的名称(object.toString())。我还检查以确保正确更改了它们的值。

接下来我回到 MainMenu 并再次检查。该对象仍然具有相同的名称,并且值也就像我在电影中更改了它们一样。

最后我进入了 CurrentPrefs 活动,但它出错了。该对象突然有了一个不同的名称,它也不再包含我对其所做的更改。

为什么对象发生了变化,更重要的是,我如何确保它不会发生变化并且在任何地方都保持不变?

4

2 回答 2

1

如果您非常了解活动的生命周期,您也可以理解它发生的原因。可能您的某些操作被委托给onResume()方法,该方法在活动返回时onPause()或之后立即调用onCreate(),而其他操作onCreate()仅在活动开始时或之后才被调用onDestroy()。我建议您控制它并尝试全部移动setText()onResume()以便再次读取每个更新的对象的变量。

于 2013-10-02T18:39:12.023 回答
1

对象的值发生变化的原因有很多。也许以前的Activity东西在你没有意识到的情况下被摧毁并重新创造了。

你应该看看Android的SharedPreference课程。这是一种存储、编辑和检索首选项并可以在任何位置访问它们的方法Activity

http://developer.android.com/reference/android/content/SharedPreferences.html

于 2013-10-02T17:47:44.947 回答