3

我正在尝试从非活动类获取和更新存储在 sharedpreferences xml 文件中的数据。但我不知道如何从 android 中的非活动类获取存储在 sharedPreferences 中的数据。在我的活动类中我可以将数据存储在 sharedprefences 中,我也可以在我的活动课程中检索这些数据。但是我无法从非活动类中检索这些数据。我的代码如下。谢谢...

    mSharedPrefs = getSharedPreferences("storageforfavorite", 0);
    mPrefsEditor = mSharedPrefs.edit();

    for(int i= 0;i<names.size();i++){
        mPrefsEditor.putString(indexForFav[i],"0"); 
    }
    mPrefsEditor.commit();

    for(int i=0;i<names.size();i++){
        String keyForFav=mSharedPrefs.getString(indexForFav[i], "2");
        valueForFav.add(keyForFav);
    }
4

2 回答 2

5

关键是可以访问 Context 对象。因此,如果您想在对象内部使用 sharedPreferences,也许您应该在类构造函数中传递一个 Context 对象。这样做你可以这样做:

SharedPreferences prefs = context.getSharedPreferences();
于 2012-07-10T08:53:27.560 回答
1

您必须通过 aContext才能SharedPreferences从非Activity类访问。

例子:

// mContext => Context-object passed from calling Activity
SharedPreferences mSharedPrefs = mContext.getSharedPreferences("storageforfavorite", 0);
于 2012-07-10T08:53:26.790 回答