2015-05-06 192 views
3

我试图让您可以保存高分,并且我还需要用户能够重置/删除他们的高分。 TOAST工作,但数据不会被删除。清除共享首选项

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

回答

1

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

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

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

+0

是的,该作品谢谢 – TheKaiser4

+0

没问题。干杯:) –

0

你可以试试这个:

settings = getSharedPreferences("MyPrefsFile", 0); 
preferences.edit().remove("highscore").commit(); 

或者你也可以用0值

0

更新sharepreference使用下面清除共享偏好

settings.edit().clear().commit(); 

或者使用下面从偏好中清除单个值

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