从 sharedPreferences 重置值
Reset value from sharedPreferences
我的应用程序有很多 classes,我将分数保存到 sharePref individually.Every class 有自己的 sharePref.In 最后我做了一个 class 我将所有这些 sharePref 加总成一个名为 totalscore 的整数,类似于 https://gyazo.com/3f0f9da2c64e587dd6244cf3933f957c。最终它起作用了。
我想在按下重启按钮时清除 sharePreferences 的值,因为它保留了高分。
感谢您的宝贵时间,对不起我的英语。
我在我的项目中通常管理sharedPreferences
的方式是,我创建一个名为AppPreferences
的class,然后在其中创建getters和setters方法来读写一些偏好.这有助于我管理所有偏好,所有用户偏好都在一个地方。
import android.content.Context;
import android.content.SharedPreferences;
public class AppPreferences {
private static AppPreferences mAppPreferences;
protected Context mContext;
private SharedPreferences mSharedPreferences;
private SharedPreferences.Editor mSharedPreferencesEditor;
private AppPreferences(Context context) {
mContext = context;
mSharedPreferences = context.getSharedPreferences("AppPreferences", Context.MODE_PRIVATE);
mSharedPreferencesEditor = mSharedPreferences.edit();
}
/**
* Creates single instance of AppPreferences
*
* @param context - context of Activity or Service
* @return Returns instance of Class AppPreferences
*/
public static synchronized AppPreferences getInstance(Context context) {
if (mAppPreferences == null) {
mAppPreferences = new AppPreferences(context.getApplicationContext());
}
return mAppPreferences;
}
/**
* Stores String value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, String value) {
mSharedPreferencesEditor.putString(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores int value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, int value) {
mSharedPreferencesEditor.putInt(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores Double value in String format in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, double value) {
setValue(key, Double.toString(value));
}
/**
* Stores long value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, long value) {
mSharedPreferencesEditor.putLong(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores boolean value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, boolean value) {
mSharedPreferencesEditor.putBoolean(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Retrieves String value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public String getStringValue(String key, String defaultValue) {
return mSharedPreferences.getString(key, defaultValue);
}
/**
* Retrieves int value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public int getIntValue(String key, int defaultValue) {
return mSharedPreferences.getInt(key, defaultValue);
}
/**
* Retrieves long value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public long getLongValue(String key, long defaultValue) {
return mSharedPreferences.getLong(key, defaultValue);
}
/**
* Retrieves boolean value from preference
*
* @param keyFlag - key of preference
* @param defaultValue default value if no key found
*/
public boolean getBoolanValue(String keyFlag, boolean defaultValue) {
return mSharedPreferences.getBoolean(keyFlag, defaultValue);
}
/**
* Removes key from preference
*
* @param key - key of preference that is to be deleted
*/
public void removeKey(String key) {
if (mSharedPreferencesEditor != null) {
mSharedPreferencesEditor.remove(key);
mSharedPreferencesEditor.commit();
}
}
/**
* Clears all the preferences stored
*/
public void clear() {
mSharedPreferencesEditor.clear().commit();
}
}
现在您可以在项目的任何地方使用上面的示例,当您想要删除某些内容时,只需调用 removeKey
函数并传递密钥即可。
旁注: 在你的项目中创建一个 Constants.java 文件并在其中添加所有键和静态变量,这样你就不必担心按键拼写和所有。
我的应用程序有很多 classes,我将分数保存到 sharePref individually.Every class 有自己的 sharePref.In 最后我做了一个 class 我将所有这些 sharePref 加总成一个名为 totalscore 的整数,类似于 https://gyazo.com/3f0f9da2c64e587dd6244cf3933f957c。最终它起作用了。
我想在按下重启按钮时清除 sharePreferences 的值,因为它保留了高分。
感谢您的宝贵时间,对不起我的英语。
我在我的项目中通常管理sharedPreferences
的方式是,我创建一个名为AppPreferences
的class,然后在其中创建getters和setters方法来读写一些偏好.这有助于我管理所有偏好,所有用户偏好都在一个地方。
import android.content.Context;
import android.content.SharedPreferences;
public class AppPreferences {
private static AppPreferences mAppPreferences;
protected Context mContext;
private SharedPreferences mSharedPreferences;
private SharedPreferences.Editor mSharedPreferencesEditor;
private AppPreferences(Context context) {
mContext = context;
mSharedPreferences = context.getSharedPreferences("AppPreferences", Context.MODE_PRIVATE);
mSharedPreferencesEditor = mSharedPreferences.edit();
}
/**
* Creates single instance of AppPreferences
*
* @param context - context of Activity or Service
* @return Returns instance of Class AppPreferences
*/
public static synchronized AppPreferences getInstance(Context context) {
if (mAppPreferences == null) {
mAppPreferences = new AppPreferences(context.getApplicationContext());
}
return mAppPreferences;
}
/**
* Stores String value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, String value) {
mSharedPreferencesEditor.putString(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores int value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, int value) {
mSharedPreferencesEditor.putInt(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores Double value in String format in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, double value) {
setValue(key, Double.toString(value));
}
/**
* Stores long value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, long value) {
mSharedPreferencesEditor.putLong(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Stores boolean value in preference
*
* @param key - key of preference
* @param value - value for that key
*/
public void setValue(String key, boolean value) {
mSharedPreferencesEditor.putBoolean(key, value);
mSharedPreferencesEditor.commit();
}
/**
* Retrieves String value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public String getStringValue(String key, String defaultValue) {
return mSharedPreferences.getString(key, defaultValue);
}
/**
* Retrieves int value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public int getIntValue(String key, int defaultValue) {
return mSharedPreferences.getInt(key, defaultValue);
}
/**
* Retrieves long value from preference
*
* @param key - key of preference
* @param defaultValue - default value if no key found
*/
public long getLongValue(String key, long defaultValue) {
return mSharedPreferences.getLong(key, defaultValue);
}
/**
* Retrieves boolean value from preference
*
* @param keyFlag - key of preference
* @param defaultValue default value if no key found
*/
public boolean getBoolanValue(String keyFlag, boolean defaultValue) {
return mSharedPreferences.getBoolean(keyFlag, defaultValue);
}
/**
* Removes key from preference
*
* @param key - key of preference that is to be deleted
*/
public void removeKey(String key) {
if (mSharedPreferencesEditor != null) {
mSharedPreferencesEditor.remove(key);
mSharedPreferencesEditor.commit();
}
}
/**
* Clears all the preferences stored
*/
public void clear() {
mSharedPreferencesEditor.clear().commit();
}
}
现在您可以在项目的任何地方使用上面的示例,当您想要删除某些内容时,只需调用 removeKey
函数并传递密钥即可。
旁注: 在你的项目中创建一个 Constants.java 文件并在其中添加所有键和静态变量,这样你就不必担心按键拼写和所有。