2013-07-19 4 views
2

Я пытаюсь понять SharedPreferences для Android. Я новичок и не знаю много об этом.значения по умолчанию для Android для общих настроек

У меня есть этот класс я реализовал для своих приложений Preferences

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, но я не понимаю этот процесс.

Не мог бы кто-нибудь мне помочь?

Спасибо за Вас время

ответ

5

Простой, если вы хотите отдельное значение по умолчанию для каждой переменной, вы должны сделать это для каждого из них, но на вашем методе:

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 для сохранения любых примитивных данных: booleans, floats, ints, longs и strings. Эти данные будут сохраняться через сеансы пользователей (даже если ваше приложение будет убито).

+0

Спасибо за ваш комментарий, я думаю, что это то, что мне нужно, но можно ли загрузить это значение по умолчанию из файла? Или где-то еще в коде? –

+0

Абсолютно. Вы можете кодировать значения по умолчанию в XML или текстовом файле и читать его в своей деятельности. Вы также можете определить свои значения по умолчанию как переменные в другом классе и использовать их, возможно, передав их в качестве параметров. – crocboy

+0

Хорошо, я попробую это. благодаря –

0

ли вы использовать параметр значение по умолчанию метода getX()?

Например, чтобы получить String называется «имя пользователя», вы могли бы использовать это:

String username = prefs.getString("username_key", "DefaultUsername"); 

Вы можете просто определить свои значения по умолчанию в вашем Preferences классе.

+0

Да, это может быть решение, но можно не определить тех, предпочтения в коде, но в файле? –

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); 
Смежные вопросы