如何访问SharedPreferences字段?

时间:2012-06-04 13:47:50

标签: java android sharedpreferences android-context listpreference

我正在尝试从SAX解析器类访问活动中声明的SharedPreferences字段。

我尝试使用getDefaultSharedPreferences(context),但我无法找到要作为此方法的参数传递的上下文,因为SAX解析器不会扩展Activity。

如何访问此字段?

现在,让我们假设我设法做到了这一点。我在这里遇到第二个问题:我的SharedPreferences字段在一个Activity(一个实际扩展PreferenceActivity的类)中声明。在这个SharedPreferences字段中,我可以存储两个复选框列表中的布尔值,代表两个多选择首选项列表。

我需要知道这些偏好列表中哪些值是“真实的”。我怎么能这样做?

这是我的代码: - Pref.java

public class Pref extends PreferenceActivity implements OnSharedPreferenceChangeListener {
static SharedPreferences pref;

public void onCreate(Bundle saveInstanceState) {
    super.onCreate(saveInstanceState);

    pref = getPreferenceManager().getSharedPreferences();
    pref.registerOnSharedPreferenceChangeListener(this);

    int c = pref.getInt("numRun",0);
    c++;
    pref.edit().putInt("numRun",c).commit();
    addPreferencesFromResource(R.xml.prefs);
}

我想我首先需要访问pref,但后来我有两个多选择首选项列表。如何从这些列表中获取值?

1 个答案:

答案 0 :(得分:1)

试试这个......

SharedPreferences prefs;

prefs = PreferenceManager.getDefaultSharedPreferences(this);

username = prefs.getString("username","");

password = prefs.getString("password","");