2015-06-21 4 views
0

Я пытался заставить SharedPreferences работать, но не повезло. Я проверяю все значения, входящие в сохранение, и все выглядит так, как будто оно работает правильно; однако, когда я пытаюсь восстановить данные, которые были сохранены, он не найден. Я попробовал несколько разных методов, включая getSharedPreferences (key, Context.MODE_PRIVATE), чтобы получить настройки. Текущий метод, который я использую, был решением чужого ответа, но не моего.SharedPreferences данные не найдены

Экономия:

Log.i("MineStalker", "Saving"); 
    SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit(); 
    Set<String> server_set = new HashSet<String>(); 
    for (MinecraftServer server : servers) { 
     server_set.add(server.getDataString()); 
     Log.i("MineStalker", "Save loop"); 
    } 
    Log.i("MineStalker", "Save size: " + server_set.size()); 
    editor.putStringSet("server_data", server_set); 
    editor.commit(); 

Получение:

servers = new ArrayList<>(); 
    Set<String> server_set = new HashSet<String>(); 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
    preferences.getStringSet("server_data", server_set); 
    Log.i("MineStalker", "Create size: " + server_set.size()); 

Подвела, данные, которые я экономлю не отображается.

+0

Не забыли ли вы приравнивать переменную при вызове getStringSet? –

ответ

1

в соответствии с документами (link), getStringSet возвращает данные, а второй параметр является значением по умолчанию для возврата, если для ключа не найдено значения. что-то, как это должно работать:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
    Set<String> server_set = preferences.getStringSet("server_data", new HashSet<String>()); 
    Log.i("MineStalker", "Create size: " + server_set.size()); 

из документации: Обратите внимание, что вы не должны изменять установленный экземпляр, возвращаемый этим вызовом. Согласованность сохраненных данных не гарантируется, если вы это сделаете, а также ваша способность изменять экземпляр вообще.

+0

О, это многое объясняет. То, как учебник, представленный Android, показывает, что это немного запутанно. Спасибо за помощь. – StaticShadow

Смежные вопросы