2012-01-15 104 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();