我的应用程序是一个基本的高尔夫计数器,主要是一个包含2个整数的“洞”对象的数组;孔数和笔划编号。如何从应用程序中将信息保存并加载到手机中?
我试图将信息以字符串形式保存在应用程序被终止时,然后再次读取并使用String.split()
和Integer.parse()
将信息写回到阵列中。
我使用OnPause()
和OnResume()
,我一直在测试我的应用程序,按后退箭头按钮查看它是否正在保存。但我似乎无法让它工作。
我有权利用OnPause()
和OnResume()
?
我的应用程序是一个基本的高尔夫计数器,主要是一个包含2个整数的“洞”对象的数组;孔数和笔划编号。如何从应用程序中将信息保存并加载到手机中?
我试图将信息以字符串形式保存在应用程序被终止时,然后再次读取并使用String.split()
和Integer.parse()
将信息写回到阵列中。
我使用OnPause()
和OnResume()
,我一直在测试我的应用程序,按后退箭头按钮查看它是否正在保存。但我似乎无法让它工作。
我有权利用OnPause()
和OnResume()
?
,如果你婉值被永久保存,那么你需要使用SharedPreferences这样的:
(within onCreate)
...
SharedPreferences user_info = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
hole = user_info.getInt("hole", 0);
stroke = user_info.getInt("stroke", 0);
...
}
@Override
public void onPause()
{
super.onPause();
SharedPreferences user_info = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
user_info.edit()
user_info.putInt("hole", hole)
user_info.putInt("strike", stroke)
user_info.commit();
}
,如果你不包括commit()
然后什么也没有发生。你也可以(我会)使用方法链接SharedPreferences
,我只是觉得我应该保持简单。
把它们作为int(或者int []我并不完全清楚你要去做什么),而不是处理所有的分裂和解析。现在,如果你试图添加它们,以便每次你放弃,你的洞和罢工被添加到一个不断增长的阵列,这更复杂一点,如果是这样的话,我也可以帮助你。
如果还不熟悉它,它是良好的,值得一读http://developer.android.com/guide/topics/data/data-storage.html
正如你所附加的图像上看到。在onPause()和的onResume()是在正确的地方:
你应该检查你的代码。你如何保存数据?它如何回读?做一些logcat调试输出...
也许你应该使用mySQL数据库来保存数据持久化。