如何使用其类中的共享首选项?

时间:2015-04-06 21:54:39

标签: android sharedpreferences

我在一个微调器的Activity类中存储一个值,是否可以在没有上下文的情况下获取值?


SharedPreference.class

 public static int getPreferencedCurrency(){

        SharedPreferences prefs = getSharedPreferences(Constants.SHARED_PREFERENCES_NAME,Context.MODE_PRIVATE);
        return prefs.getInt(Constants.CURRENCY_PREFERRED,0);

    }

getSharedPreferences错误

2 个答案:

答案 0 :(得分:0)

在SP类中存储值究竟是什么意思?你究竟需要用这个值做什么?

您可以轻松地在应用的SP中存储值,并且它始终可以访问。

答案 1 :(得分:0)

我听起来你应该将Context传递给类的构造函数,最好是应用程序上下文以避免内存泄漏,并在需要访问SharedPreferences时使用它。

这样的事情:

public class SomeClass{

  private Context con;

  public SomeClass(Context c){

     this.con = c;

  }

  public static int getPreferencedCurrency(){

        SharedPreferences prefs = con.getSharedPreferences(Constants.SHARED_PREFERENCES_NAME,Context.MODE_PRIVATE);
        return prefs.getInt(Constants.CURRENCY_PREFERRED,0);

    }
}

初始化类的实例时使用Application Context:

SomeClass sc = new SomeClass(getApplicationContext());