【问题标题】:Deleting Shared preferences in android在android中删除共享首选项
【发布时间】:2016-11-13 04:17:13
【问题描述】:

在我当前的应用程序中,我设置了一组 passpoints,并希望有一个选项可以将它们从不同的活动中删除。我在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”的方式来做这件事,但我不想开始我要从中删除的活动

【问题讨论】:

    标签: android android-activity sharedpreferences android-sharedpreferences


    【解决方案1】:

    尝试替换:

     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();
        }
    

    希望对你有帮助!

    【讨论】:

      【解决方案2】:
      public void updateDefaults(){
          SharedPreferences mPrefs = getSharedPreferences(RESETT_PASSPOINTS, 0);
          SharedPreferences.Editor editor = mPrefs.edit();
          editor.putString(RESETT_PASSPOINTS,"OTHER_VALUE");
          editor.commit();
      }
      

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

      【讨论】:

        猜你喜欢
        • 2013-03-23
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        • 2012-09-20
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        • 2016-05-17
        相关资源
        最近更新 更多