【问题标题】:I cannot get Mono for Android activity preference to work我无法让 Mono for Android 活动首选项正常工作
【发布时间】: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


【解决方案1】:

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

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

ISharedPreferences _preferences = PreferenceManager.GetDefaultSharedPreferences(your_context)

【讨论】:

  • 谢谢帕尔瓦兹。当我按照您的描述访问 ISharedPreferences 对象时,它可以工作:ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this);
猜你喜欢
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多