无法访问其他活动的共享偏好?

时间:2014-12-17 14:19:51

标签: android sharedpreferences

我有一个片段,我设置了一些SharedPreference值。

在片段中,一切正常 - 我可以获得我想要的任何值,保存,编辑,删除工作正常。 然后我有一个活动,从那里我想得到值“savedValue1” - 但它不起作用

 public static final String MyPref = "MyPreference";

 static SharedPreferences sharedpreferences;

//onCreateView...

sharedpreferences = this.getActivity().getSharedPreferences(MyPref,
                Context.MODE_PRIVATE);

editor.putString("savedValue1", someString);
editor.commit();

我在片段中尝试过:

public static String getValue(){

        return sharedpreferences.getString("savedValue1","");
    }

在活动中:

String newValue = Fragment.getValue();

但这不起作用 - 任何提示?

2 个答案:

答案 0 :(得分:2)

您不应该使用Fragment.getValue()方法。

SharedPreferences可以避免这种情况。 使用相同的getSharedPreferences("whatever", Context.MODE_PRIVATE)代码,您将在相同的首选项中获取/设置相同的值。

这应该是如何使用的。来自official documentation

  

对于任何特定的首选项,都有一个实例   所有客户共享的这个类。

答案 1 :(得分:0)

使用此代码保存和检索SharedPreferences

中的值
//To save string
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor e = settings.edit();

e.putString("savedValue1", someString);

e.commit();

//Retrieve team score
String saved_value = settings.getString("savedValue1", "");