清除共享首选项

3

我正在尝试使您能够保存高分,并且我还需要用户能够重置/删除他们的高分。烤面包 works,但数据不会被删除。

public static final String PREFS_NAME = "MyPrefsFile";
    static SharedPreferences settings;
    static SharedPreferences.Editor editor;

    // When 'back' button is pressed save the highscore to settings     
    editor = settings.edit();// Create a new editor
    editor.putInt("highscore", HighScore); // Storing integer
    editor.commit();


    // When 'Show' button is pressed
    public void showPreferences(View v) {
        int highscore = GameActivity.settings.getInt("highscore", GameActivity.HighScore);
        Toast.makeText( MainMenu.this, "Your Highscore is: " + highscore, Toast.LENGTH_LONG).show();
    }

    //When delete button is pressed
    public void clearPreferences(View V) {
        GameActivity.editor = GameActivity.settings.edit();// Create a new editor
        GameActivity.editor.clear();
        GameActivity.editor.commit();
        Toast.makeText( MainMenu.this,"Highscore has been reset",Toast.LENGTH_LONG).show();
    }
3个回答

1

我相信你只是读错了,使用这个

int highscore = GameActivity.settings.getInt("highscore", 0);

请注意第二个参数是默认值,如果该键的值不在设置中,则返回该值。

没问题。干杯 :) - Bojan Kseneman

0
你可以试试这个:
settings = getSharedPreferences("MyPrefsFile", 0);
preferences.edit().remove("highscore").commit();

或者您可以通过值0更新SharePreference。


0
使用以下代码清除共享首选项:
settings.edit().clear().commit();

或者使用以下代码从首选项中清除单个值

settings.edit().remove("highscore").commit();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接