Static SharedPreferences - PullRequest
       15

Static SharedPreferences

3 голосов
/ 05 июня 2011

У меня есть два метода в деятельности

private void save(String tag, final boolean isChecked)
{
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();


    editor.putBoolean(tag, isChecked);
    editor.commit();
}

private boolean load(String tag) {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean(tag, false);

}

и я не хочу делать нагрузку статической для получения значений нагрузки из другого статического метода в рамках того же действия. Однако, когда я пытаюсь сделать метод загрузки статическим, я, конечно, получаю ошибку из-за нестатической ссылки. Как я могу сделать эту работу?

Я попробовал это Доступ к SharedPreferences статическими методами без удачи.

Любая помощь будет высоко ценится!

1 Ответ

5 голосов
/ 05 июня 2011

Вы можете сохранить и загрузить из Application общих настроек вместо префсов, личных для Activity:

private static boolean load(String tag) {
    SharedPreferences sharedPreferences = Context.getApplicationContext().getSharedPreferences("namespace", Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean(tag, false);
}

Если вы сделаете это, убедитесь, что вы также храните настройки аналогичным образом (с помощью Context.getApplicationContext().getSharedPreferences)

...