删除android中的共享首选项

时间:2016-11-13 04:17:13

标签: android android-activity sharedpreferences android-sharedpreferences

在我当前的应用程序中,我制作了一组密码,并希望有一个选项可以从不同的活动中删除它们。我在stackoverflow上看到了一些与此类似的问题,并尝试按照他们的说明修改一下,但没有任何效果。我的代码出了什么问题?

第一项活动:(具有我想要删除的偏好的活动)

public void setDefaults() {
    SharedPreferences mPrefs = getSharedPreferences(RESETT_PASSPOINTS, 0);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString(RESETT_PASSPOINTS,Identifier);
    editor.commit();
}

第二项活动:(我试图删除的活动)

public void deleteDefaults(){

    SharedPreferences mPrefs = getSharedPreferences(Activity1.RESETT_PASSPOINTS, 0);
    String str = mPrefs.getString(Activity1.RESETT_PASSPOINTS, Activity1.Identifier);
    if (str.equals(Activity1.Identifier)){
        SharedPreferences.Editor editor = mPrefs.edit();
        editor.clear();
        editor.commit();

    }

}

此外,我知道我可以使用意图“.put extra”的方式来做但我不想开始我正在删除的活动

2 个答案:

答案 0 :(得分:0)

尝试更换:

 if (str.equals(Activity1.Identifier)){
        SharedPreferences.Editor editor = mPrefs.edit();
        editor.clear();
        editor.commit();    
    }

为此:

 if (str.equals(Activity1.Identifier)){
        SharedPreferences.Editor editor = mPrefs.edit();
        editor.remove(Activity1.RESETT_PASSPOINTS).commit();
    }

希望它有所帮助!

答案 1 :(得分:0)

public void updateDefaults(){
    SharedPreferences mPrefs = getSharedPreferences(RESETT_PASSPOINTS, 0);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString(RESETT_PASSPOINTS,"OTHER_VALUE");
    editor.commit();
}

最好的选择是更新它并再次检查它的值。