我有一个Android应用程序,在其中有一个XML文件来存储我的偏好设置,目前它可以正常工作。现在,我想使用代码来设置其中一个偏好项,而不是显示整个偏好设置屏幕,我该如何实现?
我有一个Android应用程序,在其中有一个XML文件来存储我的偏好设置,目前它可以正常工作。现在,我想使用代码来设置其中一个偏好项,而不是显示整个偏好设置屏幕,我该如何实现?
要在应用程序运行期间保存偏好设置,你需要执行以下操作:
创建一个 SharedPreferences 对象
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
字符串n用于标识您的偏好,第二个参数是它们将要被访问的模式
实例化一个Editor对象
SharedPreferences.Editor editor = settings.edit();
注意:不要尝试使用settings.editor.edit(),这不会创建一个持久对象,下面的代码将无法工作。
将您的偏好写入缓冲区
editor.put...(String, value)
有许多put函数,如putString、putBoolean等。字符串是键(“version”、“good run”),值是值(“1.5.2”、true)
刷新缓冲区
editor.commit();
如果你的应用程序在这行代码之前崩溃,那么实际上你写入了偏好设置但未能成功保存。还有一个已记录的错误:commit()应该返回一个指示成功或失败的布尔值。据我所知,它总是返回false。
这些偏好设置将存储在手机上,并且只能被您的应用程序访问。
更多文档请参见此处。
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}
apply();
而不是commit();
。 - Twinone