0

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

4

1 回答 1

1

我不知道用于 android 的 mono,但在 android 中,我们在 java 中调用 getsharedpreferences()。在这里,您只调用可以是任何首选项但设置首选项的首选项。您可以尝试诸如 getdefaultsharedpreference 之类的东西。

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

ISharedPreferences _preferences = PreferenceManager.GetDefaultSharedPreferences(your_context)
于 2013-03-25T17:38:48.027 回答