-1

我是android开发的新手。在我的第一个应用程序中,我使用 SharedPreferences 在整个应用程序中共享一些字符串。现在我正在使用标签制作和应用程序。我的第一个活动是 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 扩展而来的,它有四个 Fragment。现在我想在 TabActivity 的片段之一中访问 SharedPreferences。我试着用

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

并且它的打印是空的。知道我该怎么做吗?提前致谢。

4

2 回答 2

2

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

于 2013-06-26T14:41:20.053 回答
1

请注意,您的上下文已从 Activity 更改为 Fragment。我假设您在 Activity 中使用的是:

this.getSharedPreferences(..)

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

getActivity().getSharedPreferences(...)
于 2013-06-26T14:44:36.133 回答