2013-10-14 4 views
1

Как сохранить настройки моего приложения? Прямо сейчас, например, у меня есть переключатель для включения/выключения. Но если я перезапущу свой телефон, кнопка переключения снова включится. Не сохранять настройки, если я полностью закрываю приложение. Могу ли я сохранить настройки телефона в качестве файлов cookie?Как сохранить настройки приложения?

ответ

4

Использование Общие предпочтения. Как так:

Поместите это в верхней части вашего класса: public static final String myPref = "preferenceName";

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

public String getPreferenceValue() 
{ 
    SharedPreferences sp = getSharedPreferences(myPref,0); 
    String str = sp.getString("myStore","TheDefaultValueIfNoValueFoundOfThisKey"); 
    return str; 
} 

public void writeToPreference(String thePreference) 
{ 
    SharedPreferences.Editor editor = getSharedPreferences(myPref,0).edit(); 
    editor.putString("myStore", thePreference); 
    editor.commit(); 
} 

Вы могли бы назвать им нравится:

writeToPreference("on"); // stores that the preference is "on" 
writeToPreference("off"); // stores that the preference is "off" 

if (getPreferenceValue().equals("on")) 
{ 
    // turn the toggle button on 
} 
else if (getPreferenceValue().equals("off")) 
{ 
    // turn the toggle button off 
} 
else if (getPreferenceValue().equals("TheDefaultValueIfNoValueFoundOfThisKey")) 
{ 
    // a preference has not been created 
} 

Примечание: вы можете сделать это с boolean, integer и т. Д.

Все, что вам нужно сделать, это изменить и сохранить String на boolean или любой другой тип, который вы хотите.

Вот ссылка на Pastie с кодом выше модифицирован для хранения boolean вместо: http://pastie.org/8400737

+1

Спасибо! это очень полезно. Я помещал вызовы sharedPereferences в метод. Есть ли способ попытаться извлечь sharedPreferences из другого класса? Например, я хочу получить доступ к общим переадресациям из broadCastReceiver. – user2779837

+0

. «Общие настройки», с тем, как я его написал, могут быть доступны в любом классе. Не забудьте просто сохранить '' preferenceName '', который является 'myPref' одинаковым в обоих классах; и сохраните '' myStore '' тоже. –

+0

Можете ли вы рассказать мне, что такое myPref? Для чего его используют? – user2779837

0

Вы можете использовать локальную БД, такую ​​как SQlite, для своего приложения.

+0

Почему предполагает использование SQLite? Вы действительно думаете, что в этом случае возможно использовать БД? – GrIsHu

0

Вы должны ознакомиться с SharedPreferences. Это способ Android сохранить простые значения. Или вы можете создать полную базу данных.

0

Используйте SharedPreferences, чтобы сохранить небольшой фрагмент данных приложения. Проверьте developer's website.

Также ознакомьтесь с этим Tutorial за пошаговое руководство.

+1

Проверьте время загрузки, люди готовы ответить в любой момент. –

1

Используйте SharedPreferences, как,

Спасти:

SharedPreferences settings; 
SharedPreferences.Editor editor; 
public static final String PREFS_NAME = "app_pref"; 
public static final String KEY_p_id = "KEY_test"; 

    settings = getSharedPreferences(PREFS_NAME, 0); 
    editor = settings.edit(); 
    editor.putString(Login_screen.KEY_test, values.get(0)); 
    editor.commit(); 

удалить:

editor.remove("KEY_test").commit(); 
Смежные вопросы