2012-05-24 58 views
0

我想通過sharepreferance在內存中存儲字符串,但有一些問題引發無法存儲在內存中,請你讓我知道我該如何解決這個問題? 需要任何權限?問題SharedPreferences

代碼::

SavePreferences("MEM1", LanguageSelcted); 
LoadPreferences(); 

方法::脫穎而出是這條線

public void SavePreferences(String key, String value) { 
      try { 
       SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
       SharedPreferences.Editor editor = sharedPreferences.edit(); 
       editor.putString(key, value.trim()); 
       editor.commit(); 
      } catch (Exception e) { 

      e.printStackTrace(); 

      } 

private void LoadPreferences() { 
     try { 
      SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
      LanguageSelection = sharedPreferences.getString("MEM1", ""); 
      Log.i(TAG, "LanguageSelection is :>>>" + LanguageSelection); 
      Toast.makeText(getBaseContext(), "LanguageSelection is :>>>" + LanguageSelection, Toast.LENGTH_LONG).show(); 
      /* 
      * textSavedMem1.setText(strSavedMem1); 
      * textSavedMem2.setText(strSavedMem2); 
      */ 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
+0

您能詳細說明您遇到的問題嗎? – derekerdmann

+0

當我加載的時候,它在字符串中得不到任何值... –

+0

是SavePrefrences方法(或LoadPreferences方法)拋出任何異常? – MikeIsrael

回答

2

保存應

SharedPreferences myPrefs1 = this.getSharedPreferences(
           "update", MODE_PRIVATE); 
         SharedPreferences.Editor prefsEditor = myPrefs1.edit(); 
         prefsEditor.putString("URL", apkurl); 
         prefsEditor.commit(); 

並獲得應

SharedPreferences pref = this.getSharedPreferences("update", 
       MODE_PRIVATE); 
     String key = pref.getString("URL", ""); 

getSharedPreferences將採取兩個參數。

+0

如果他存儲要在各個活動中使用的首選項,則這是正確的。他正在使用的getPreferences(int模式)存儲特定活動的首選項。因此,如果他試圖在不同的活動中訪問這些偏好,那麼它將無法工作。這將解釋這一點,並獲得適當的價值。 – dymmeh

0

一件事:

LanguageSelection = sharedPreferences.getString("MEM1", ""); 

應該有一個參考.. 。

LanguageSelection whateverNameYouWant = sharedPreferences.getString("MEM1", ""); 

或者你的意思是......

String LanguageSelection = sharedPreferences.getString("MEM1", ""); 
+0

LanguageSelection可能是他的應用程序中的成員變量..只是沒有使用適當的Java變量命名做法 – dymmeh

+0

String LanguageSelection –