2017-01-01 8 views
0

У меня есть класс, где я хочу получить SharedPreferences, сохраненный в PreferencesActivity в приложении для Android. Я пробовал это, но он дает исключение с нулевым указателем. Опять же, я использую класс, а не деятельность, чтобы получить то, что мне нужно.Как получить SharedPreferences из PreferenceActivity

public PrefsInterface(Context context) 
{ 
    gson = new Gson(); 
    sPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
    String json = sPreferences.getString("myJsonCity", ""); 
    if(!json.isEmpty()) 
    { 
     Type t = new TypeToken<CityObj>(){}.getType(); 
     myCity = gson.fromJson(json, t); 
     //System.out.println(myCity.city()); 
    } 
    else 
    { 
     System.out.println("Error getting city from settings."); 
    } 

} 
+0

В действии тот же самый код работает или нет? –

+0

Поделитесь своим кодом активности и частью трассировки стека исключений –

+0

Это должно сработать. Использование класса и передача контекста - это законный способ сделать это. Можете ли вы добавить дополнительные сведения о самом исключении? – yakobom

ответ

0

Я понял, почему я ничего не получил. Я ничего не спасал. Вместо того, чтобы экономить, как это:

SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor=preferences.edit(); 
    editor.putString("Name","Harneet"); 
    editor.commit(); 

Я спасал, как это:

SharedPreferences.Editor = this.getPreferences(MODE_PRIVATE).edit(); 

Это означало, что я не мог получить настройки сохраненных из-за этого приватным режимом.

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

  • Нет связанных вопросов^_^