0
我遇到了onSaveInstanceState问题,但可能是因为我误解了它的工作原理。如何初始化onSaveInstanceState?
我有一个Arraylist我想保存当我切换活动,然后恢复当我回来。
,所以我有这个方法
@Override
protected void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putStringArrayList("History", History);
和我的onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null) {
History = savedInstanceState.getStringArrayList("History");
}
}
出于某种原因,这个循环没有被initliased
if(savedInstanceState != null) {
History = savedInstanceState.getStringArrayList("History");
}
我敢肯定它的soemthing相当简单但我对Java仍然很陌生。
噢好吧我看到,虽然我现在有一个新问题,但即使关闭并重新启动我的应用程序,SharedPreferences似乎也会保存我的值。任何想法如何重置每次新的运行变量? –
SharedPreferences是跨应用程序的所有实例的持久存储,因此它[按设计工作](http://developer.android.com/training/basics/data-storage/shared-preferences.html)。当应用程序加载到主活动的onCreate()方法中时,您可以在'SharedPreferences'中清除记录。否则,您可以考虑以更易变的形式(例如应用程序类中的对象)存储数组。 – CodeMonkey
啊是啊,很高兴它工作:) 对于有类似问题的任何人这里是一个很好的链接,有一个很好的全球类示例代码。 https://androidresearch.wordpress.com/2012/03/22/defining-global-variables-in-android/ –