Android共享偏好问题

时间:2010-11-11 09:13:17

标签: android

全部好,

在我的活动中,我使用了默认的共享优先级来存储一些数据......它也存储了。 但是当我想访问类外的共享prefrence(没有活动的Simple类)时,我的项目显示错误。

代码:

 SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this);
     user = p.getString("Username", null);
         pass=p.getString("Password", null);

它在getDefaultSharedPreferences上显示红线,当我将鼠标悬停在它上面时它显示

PreferenceManager类型中的getDefaultSharedPreferences(Context)方法不适用于参数(Myclassname)

任何人都可以帮助我...我想访问活动类之外的共享优势,而不是活动。

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果不将当前上下文传递给getDefaultSharedPreferences(),则无法工作, 如果您想访问外部,那么您应该找到一些方法将您的上下文传递给该类

一些建议
您可以使用静态变量

class A extends Activity{
-----------
Static Context context;

onCreate(--){
    context = this;
}

}

所以在课堂上你可以使用

getDefaultSharedPreferences(A.context);

注意:仅当A是当前活动时才会起作用。

或者您可以使用某个函数将上下文传递给该类,例如将值传递给其构造函数或任何特定函数。所以你可以把它存储在那里并从那里使用