2012-01-15 109 views
0

我已經將一個首選項文件'xml/sleeppreferences.xml'放入了一個tabSpec,並且這個想法是這個應用程序的這個部分的首選項,並且還會有其他部分的其他首選項文件。getSharedPreferences不返回值

這似乎工作正常。我做了一個首選項更改,關閉模擬器,重新運行應用程序,返回到首選項頁面,並且首選項是我設置的。

但是,當我點擊另一個選項卡,我想要使用該首選項的值時,它都出錯了。

我看上去很高,但找不到答案。

這是代碼的摘錄:

public static final String PREF_FILE_NAME = "sleeppreferences"; 
: 
: 
: 
SharedPreferences prefs = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);   
String test=prefs.getString("editTextPref", "unset"); 

以「未設置」是如果沒有找到任何默認響應。

它總是返回「未設置」

正如我說的,我看了所有的地方,我正在使用的代碼似乎是正確的代碼。發生什麼了?

感謝

戴夫

+1

發佈代碼將數據放入sharedpreference的位置 – 2012-01-15 02:07:30

回答

0

嘗試使用上下文類的GetSharedPreferences。事情是這樣的:

public String GetPassword (Context Contexto, String Key) throws Exception 
    {  

     SharedPreferences savedSession= Contexto.getSharedPreferences(Key,Context.MODE_PRIVATE); 
     return Encryption.decrypt(_Seed,savedSession.getString(Key, null)); 

    } 

我認爲這應該工作以及:

getApplicationContext().getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).getString("editTextPref", "unset"); 
+0

對不起, String test = getApplicationContext()。getSharedPreferences(PREF_FILE_NAME,MODE_PRIVATE).getString(「EditTextPref」,「unset」);仍然返回「未設置」。儘管感謝您的快速回復。戴夫 – DaveSav 2012-01-15 01:58:21

+0

您可以添加您正在使用的代碼保存在應用程序內的偏好? – 2012-01-15 02:05:49

+0

完全是我的錯。將首選項保存到默認首選項而不是我自定義的首選項。 – DaveSav 2012-01-16 17:06:19

0

請試試這個代碼,以節省您的喜好,然後用我以前貼的代碼。它必須正常工作。

SharedPreferences savedSession= context.getSharedPreferences(Key,Context.MODE_PRIVATE); 
    Editor editor = savedSession.edit(); 
    editor.putString(Key, EncryptedPass); 
    editor.commit();