清除共享首选项
Clear Shared Preferences
我正在努力让您可以保存高分,我还需要用户能够 reset/delete 他们的高分。 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();
}
我相信你只是看错了,用这个
int highscore = GameActivity.settings.getInt("highscore", 0);
请注意,第二个参数是默认值,如果设置中不存在该键的值,则会返回该值。
你可以试试这个:
settings = getSharedPreferences("MyPrefsFile", 0);
preferences.edit().remove("highscore").commit();
或者您可以用值 0 更新共享偏好。
使用以下清除共享首选项
settings.edit().clear().commit();
或者使用下面的方法从首选项中清除单个值
settings.edit().remove("highscore").commit();
我正在努力让您可以保存高分,我还需要用户能够 reset/delete 他们的高分。 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();
}
我相信你只是看错了,用这个
int highscore = GameActivity.settings.getInt("highscore", 0);
请注意,第二个参数是默认值,如果设置中不存在该键的值,则会返回该值。
你可以试试这个:
settings = getSharedPreferences("MyPrefsFile", 0);
preferences.edit().remove("highscore").commit();
或者您可以用值 0 更新共享偏好。
使用以下清除共享首选项
settings.edit().clear().commit();
或者使用下面的方法从首选项中清除单个值
settings.edit().remove("highscore").commit();