我有一个片段,我设置了一些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();
但这不起作用 - 任何提示?
答案 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", "");