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