staticmethod中的Android PreferenceManager

时间:2012-12-19 18:51:18

标签: android android-preferences

如果我尝试编写此方法

public static void saveDefaultUser() {
        Editor pName = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext())
                .edit();
        pName.putString("Name", name);
        pName.commit();
}

无法编译,我必须删除 静态 值, 因为很明显我不能对非静态方法进行静态引用。

是否有办法使其适用于静态方法?

1 个答案:

答案 0 :(得分:4)

您必须将Context传递给您的方法并使用该方法而不是getBaseContext()

public static void saveDefaultUser( Context cntxt ) {
    Editor pName = PreferenceManager
            .getDefaultSharedPreferences(cntxt)
            .edit();
    pName.putString("Name", name);
    pName.commit();
}