2010-10-19 135 views
5

当你建立一个共享的偏好,如下面...访问共享偏好

public static final String PREFS_HI = "MyPrefsFile"; 

是否可以从其他活动访问它,就像你通常会怎么做?

SharedPreferences settings = getSharedPreferences(PREFS_HI, 0); 

或者是否有某种独特的,你必须做的访问偏好?

回答

1

自己弄明白了。我只使用全局变量并在其中存储共享首选项。当另一个活动想要访问首选项时,它会简单地访问全局变量。

+0

你的意思是你'SharedPreferences'存储为'公共static'?你真的不应该这样做。我犯了同样的错误,即使它有效,它也会导致巨大的内存泄漏。请参阅:http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html – 2013-07-19 04:42:31

3

我会在资源xml文件(strings.xml)中存储您的共享首选项名称(您称之为PREFS_HI)。那么你可以使用getSharedPreferences(getResources().getString(R.string.sharedPrefs))。虽然你的解决方案也可以。 (和性能可能会在您的版本稍微好一点。)

+0

雅,我看着这个选择也。 – 2010-10-21 20:42:33

0

getApplication()。getSharedPreferences(名称,模式)试试这个