0

在我的单声道Android应用程序我想保存活动的用户设置到活动首选项。我这样做,每当用户改变这个值:我不能让单声道的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的默认值。我不知道它是否没有正确保存或未正确加载。任何帮助,将不胜感激! 谢谢, Dave

+0

是什么ISharedPreferences?放置断点并查看您坚持的价值。 – 2013-03-25 16:35:42

+0

ISharedPreferences是Android返回的用于管理活动/应用程序首选项的对象。有一次,我坚持了241,但仍然返回-1。 – 2013-03-25 16:37:46

+0

您的代码看起来不错,请尝试[this](https://github.com/gshackles/Sample-Projects/blob/master/MonoDroid/MonoDroidSamples/MonoDroidSamples/DemoActivities/Preferences/PreferencesActivity.cs)工作示例。 – 2013-03-25 17:14:35

回答

1

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

编辑:我不知道,但你可以试试这个..

ISharedPreferences _preferences = PreferenceManager.GetDefaultSharedPreferences(your_context) 
+0

谢谢Parvaz。当我按照你的描述访问ISharedPreferences对象时,它就起作用了:'ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this);' – 2013-03-26 08:51:59

+0

很高兴能帮上忙:) – 2013-03-26 10:25:04