在我当前的应用程序中,我制作了一组密码,并希望有一个选项可以从不同的活动中删除它们。我在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”的方式来做但我不想开始我正在删除的活动
答案 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();
}
最好的选择是更新它并再次检查它的值。