我正在尝试了解Android的SharedPreferences。我是初学者 并且对此不太了解。
我已经为我的应用首选项
实现了这个课程public class Preferences {
public static final String MY_PREF = "MyPreferences";
private SharedPreferences sharedPreferences;
private Editor editor;
public Preferences(Context context) {
this.sharedPreferences = context.getSharedPreferences(MY_PREF, 0);
this.editor = this.sharedPreferences.edit();
}
public void set(String key, String value) {
this.editor.putString(key, value);
this.editor.commit();
}
public String get(String key) {
return this.sharedPreferences.getString(key, null);
}
public void clear(String key) {
this.editor.remove(key);
this.editor.commit();
}
public void clear() {
this.editor.clear();
this.editor.commit();
}
}
问题是我想设置默认首选项。它们将在安装应用程序时设置,并且可以在应用程序之后进行修改并保持持久性。 我听说过preferences.xml,但我不明白这个过程。
有人可以帮助我吗?
谢谢你的时间
答案 0 :(得分:7)
很简单,如果你想为每个变量设一个单独的默认值,你需要为每个变量做一个,但是你的方法是这样做的:
public String get(String key) {
return this.sharedPreferences.getString(key,"this is your default value");
}
如果用户从未访问过变量或从未创建变量,系统会将默认值设置为值,如果您或用户更改了此值,则忽略默认值。见http://developer.android.com/guide/topics/data/data-storage.html#pref
直接来自Android文档:
SharedPreferences类提供了允许的通用框架 您可以保存和检索原始数据的持久键值对 类型。您可以使用SharedPreferences保存任何原始数据: 布尔,浮子,整数,长整数和字符串。这些数据将持续存在 跨用户会话(即使你的应用程序被杀死)。
答案 1 :(得分:0)
您可以使用getX()
方法的默认值参数吗?
例如,要获得名为“用户名”的String
,您可以使用:
String username = prefs.getString("username_key", "DefaultUsername");
您只需在Preferences
课程中定义默认值即可。
答案 2 :(得分:0)
您可以在字符串资源中存储默认值:
<string name="key_name">default_value</string>
然后得到它:
int ResId = context.getResources().getIdentifier(key_name, "string", context.getPackageName()));
prefs.getString(key_name,context.getResources().getString(ResId);