1

如果我尝试编写此方法

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

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

有没有办法调整它以用于静态方法?

4

1 回答 1

4

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

public static void saveDefaultUser( Context cntxt ) {
    Editor pName = PreferenceManager
            .getDefaultSharedPreferences(cntxt)
            .edit();
    pName.putString("Name", name);
    pName.commit();
}
于 2012-12-19T18:54:38.767 回答