共享首选项的android默认值

时间:2013-07-19 19:14:19

标签: android sharedpreferences default

我正在尝试了解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,但我不明白这个过程。

有人可以帮助我吗?

谢谢你的时间

3 个答案:

答案 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);