SharedPreferences返回空

时间:2013-10-24 14:42:26

标签: android sharedpreferences

我有这个代码,每次加载片段时运行

Log.d("SP::getAll", sp.getAll().toString());
sp.storeValue(SP.STRING, KEY_TYPESANDCLASSES, s, TimeHelper.YEAR);
Log.d("SP::getAll", sp.getAll().toString());

输出总是第一个log为空,第二个包含值,即使我简单地重新加载片段。

我不确定我的错误,我对使用SharedPreferences没有经验。

在基本活动中

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    sp = new SP(this);
    ...
}

public SP getSP() {
    return sp;
}

SP.java

public SP(Context ctx) {
    sp = ctx.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
}

public void storeValue(int type, String key, Object value, Long cacheTime) {
    spe = sp.edit();
    switch (type) {
        case BOOLEAN:
            spe.putBoolean(key, (Boolean) value);
            break;
        case STRING:
            spe.putString(key, (String) value);
            break;
        case LONG:
            spe.putLong(key, (Long) value);
        case INTEGER:
            spe.putInt(key, (Integer) value);
            break;
        case FLOAT:
            spe.putFloat(key, (Float) value);
            break;
    }


    if (cacheTime != null) {
        spe.putLong(key+TIME_KEY, cacheTime);
    }
    spe.commit();
}

public Map<String, ?> getAll() {
    return sp.getAll();
}

任何人都可以帮我弄清楚我在这里遇到了什么问题吗?

如果您需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

我的错误是当我之前调试某些内容时,我正在清除代码顶部的首选项,并忘记在此之前删除清除。