我无法让Mono for Android活动偏好工作

时间:2013-03-25 16:14:17

标签: android android-activity xamarin.android sharedpreferences android-preferences

在我的Android 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";

然后应该在actvity的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。我不知道它是不是正确保存还是没有正确加载。任何帮助,将不胜感激! 谢谢, 戴夫

1 个答案:

答案 0 :(得分:1)

我不知道有关Android的单声道,但在android中我们在java中调用getsharedpreferences()。在这里,您只调用可以是任何首选项的首选项,但设置首选项。你可以试试像getdefaultsharedpreference之类的东西。

编辑:我不确定,但你可以试试这个..

ISharedPreferences _preferences = PreferenceManager.GetDefaultSharedPreferences(your_context)