如何从Fragment扩展的类中获取SharedPreference?

时间:2013-06-26 14:38:52

标签: android sharedpreferences adt

我是android开发的新手。在我的第一个应用程序中,我使用SharedPreferences在整个应用程序中共享一些字符串。现在我正在使用标签制作和应用程序。我的第一个Activity是LoginActivity,我在其中设置SharedPreferences:

 myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);

 SharedPreferences.Editor e = myPrefs.edit();
 e.putString("name", "Piscean");
 e.commit();

 Intent mainIntent = new Intent(LoginActivity.this, TabActivity.class);
 startActivity(mainIntent);

TabActivity从FragmentActivity扩展而来,它有四个Framents。现在我想访问TabActivity片段之一的SharedPreferences。 我试着用

 SharedPreferences myPrefs = getActivity().getSharedPreferences("myPrefs", 0);
 System.out.println("Name: "+myPrefs.getString("name", "empty"));

并将其打印出来。知道我该怎么办?提前谢谢。

2 个答案:

答案 0 :(得分:2)

你必须使用getActivity().getSharedPreferences(...)

答案 1 :(得分:1)

请注意,您的上下文已从“活动”更改为“片段”。我假设您正在使用的活动:

this.getSharedPreferences(..)

在您的片段中,您需要容器活动的上下文:

getActivity().getSharedPreferences(...)