Android - SharedPreferences与Context相关的错误

时间:2015-02-01 19:55:26

标签: java android

我对SharedPreferences有疑问。我在一个名为HashM.java的类中实现了它们。开始这样的事情:

public void getPrefs (Context BaseContext) {

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(BaseContext);

我试图以这种方式在我的点击监听器中调用它:

HashM hash = new HashM();
hash.getPrefs();

但是,我收到一个错误:

getPrefs (Context) in HashM cannot be applied

有人能指出我如何解决这个问题吗?谢谢。

3 个答案:

答案 0 :(得分:1)

getPrefs(Context)期望上下文作为参数。您需要在其中传递活动上下文。

你可以这样做

HashM hash = new HashM();
hash.getPrefs(MyActivity.this); // MyActivity is the activity where you are putting this code

答案 1 :(得分:1)

如果您的HashM类有更多需要指定上下文的方法,请考虑使用Context参数为此类创建构造函数,并将其分配给变量,如下所示:

class HashM
Context mContext;

public HashM  (Context context) {
mContext = context;
}

public void getPrefs () {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);

并以

作为参考
HashM hashM = new HashM(getActivity());

答案 2 :(得分:0)

添加到@ Rohit5k2的答案,你也可以使用

HashM hash = new HashM(); 
hash.getPrefs(getActivity());