Настройки приложения

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Настройки приложения

Сообщение andev » 22 мар 2012, 10:35

Как лучше всего организовать хранение и работу с настройками приложения?
У меня там пара string и несколько булевых значений. Первоначально думал в Preferences, но, на сколько я понял, для каждого данные сохраненные в нем из одного активити не будут видны в другом?
Остается SQLite, но, возможно, есть более удобный способ?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Настройки приложения

Сообщение KamiSempai » 22 мар 2012, 16:53

Есть метод getSharedPreferences(String name, int mode). Он аналогичен getPreferences, только первым параметром передается имя файла с настройками(без расширения).
На самом деле вызов getPreferences равносилен вызову getSharedPreferences, где name равно имени Активити.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Настройки приложения

Сообщение andev » 22 мар 2012, 18:47

То есть, сохраненные данные с одного активити можно будет считывать в любом другом в рамках приложения?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Настройки приложения

Сообщение KamiSempai » 23 мар 2012, 12:01

Именно так.

PS: Для информации: Настройки хранятся в папке "/dbdata/databases/<Имя пакета программы>/shared_prefs/" с расширением xml.
После удаления программы, настройки ни куда не пропадают, и если в них записанно, что то, что мешает запуску программы или, как уменя один раз было, не дает перезаписать настройки, придется в ручную удалять эту папку (нужны рут права).
Последний раз редактировалось KamiSempai 23 мар 2012, 12:21, всего редактировалось 1 раз.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Настройки приложения

Сообщение andev » 23 мар 2012, 12:15

Спасибо, сейчас попробую подключить к проекту

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Настройки приложения

Сообщение andev » 29 мар 2012, 03:10

А как лучше всего организовать работу с SharedPrefernces из класса, который не наследует Activity?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Настройки приложения

Сообщение KamiSempai » 29 мар 2012, 17:27

Это можно сделать через Context, который передается в конструктор класса.

Код: Выделить всё

MyClass MyObject = new MyClass(this);
Здесь this - это сама активити, в которой создается объект.
Вот конструктор:

Код: Выделить всё

public MyClass(Context context) {
	SharedPreferences Pref = context.getSharedPreferences(PREF_FILE, Context.MODE_WORLD_READABLE);
	// Дальше, думаю, понятно...
}
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ответить