2015-05-06 189 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();