【发布时间】:2013-03-25 16:14:16
【问题描述】:
在我的 mono for android 应用程序中,我想将活动的用户设置保存到活动首选项中。每当用户更改此值时,我都会这样做:
ISharedPreferences prefs = GetPreferences(FileCreationMode.Append);
ISharedPreferencesEditor editor = prefs.Edit();
editor.PutInt(NO_PIXELS_PER_HOUR_KEY, m_noPixelsPerHour);
editor.Commit();
其中 NO_PIXELS_PER_HOUR_KEY 是:
private const string NO_PIXELS_PER_HOUR_KEY = "PIXELS_PER_HOUR";
然后应该在活动的 OnCreate 方法中再次加载该值:
ISharedPreferences preferences = GetPreferences(FileCreationMode.Append);
int tempNoPixelsPerHour = preferences.GetInt(NO_PIXELS_PER_HOUR_KEY, -1);
if (tempNoPixelsPerHour == -1)
m_noPixelsPerHour = (int)(m_deviceHeight * 0.25);
else
m_noPixelsPerHour = tempNoPixelsPerHour;
问题在于该值似乎没有持续存在!每当我退出活动并返回活动时,都会返回默认值 -1。我不知道它是否没有正确保存或没有正确加载。任何帮助,将不胜感激! 谢谢, 戴夫
【问题讨论】:
-
什么是 ISharedPreferences?放置断点,看看你坚持什么价值。
-
ISharedPreferences 是 Android 返回的对象,用于管理活动的/应用程序首选项。有一次我坚持了 241,但它仍然返回 -1。
-
你的代码看起来不错,试试this工作示例。
标签: android android-activity xamarin.android sharedpreferences android-preferences