Topic: Сохраняем настройки

Обсуждение статьи Сохраняем настройки

Re: Сохраняем настройки

Добрый день!
Вопрос - где лучше всего читать настройки?
У меня есть активити Settings, там я меняю/сохраняю настройки приложения.
Настройки хранятся в SharedPreferences.
Но эти настройки мне нужны в MainActivity.
Вопрос:
Чтение настроек в каждой активности делать свое или сделать общий класс и к нему обращаться или использовать класс Settings где у меня уже есть чтение настроек.
И как вызвать процедуру, которая читает настройки в SettingsActivity из MainActivity?

В public class Setting extends AppCompatActivity у меня есть процедура

public void readSetting() {

        mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
        Switch vibra_switch = (Switch) findViewById(R.id.vibra_switch);
        Switch sound_switch = (Switch) findViewById(R.id.sound_switch);
        Switch toast_switch = (Switch) findViewById(R.id.toast_switch);

        vibra_switch.setChecked(mSettings.getBoolean(APP_PREFERENCES_Vibra, true));
        sound_switch.setChecked(mSettings.getBoolean(APP_PREFERENCES_Sound, true));
        toast_switch.setChecked(mSettings.getBoolean(APP_PREFERENCES_Toast, true));

    }

Re: Сохраняем настройки

SharedPreferences - это по сути чтение и запись в файл. Не имеет значения, из какой активности вы будете обращаться к файлу - он общий для всех активностей. Поэтому, точно также создаете экземпляр класса SharedPreferences и считываете нужные настройки.

4 (edited by boss_soft 2017-08-01 16:01:38)

Re: Сохраняем настройки

забавно ощущать себя некропостером, но раз уж...

в общем вопрос — а есть ли возможность определить принципиальное наличие файла настроек?
как я понял команда

 mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);

при отсутствии файла сразу его создаёт? а если мне нужно только узнать есть этот файл или нет? то как?

ну и за компанию — а удалить файл настроек можно? smile

Re: Сохраняем настройки

Файл настроек - это файл с известным путем и именем. Поэтому можно проверить и его наличие и удалить. Но нужно ли это?

6 (edited by Mikhail 2018-01-23 17:28:51)

Re: Сохраняем настройки

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

Re: Сохраняем настройки

Возьмите и проверьте. Зачем спрашивать.

Re: Сохраняем настройки

Здравствуйте! Как лучше сохранить логин-пароль для автоматической авторизации на разных сайтах? Подгружать в Intent?

Re: Сохраняем настройки

А как избавиться от того что при каждом обновлении приложения из play market эти настройки стираются.

Т.е. поясню: Человек устанавливает моё приложение и настраивает как ему необходимо, затем я делаю новую версию и выкладываю в play market и когда он обновляет приложение ему приходится настраивать всё заново.

Re: Сохраняем настройки

Настройки не стираются. Скорее всего у вас неправильно написано приложение, которое самое стирает данные.

Re: Сохраняем настройки

alexander.klimoff wrote:

Настройки не стираются. Скорее всего у вас неправильно написано приложение, которое самое стирает данные.

На что тогда следует обратить внимание в программе? Что может быть написано или настроено не так?

Re: Сохраняем настройки

Смотрите свой код, который удаляет данные. Гадать можно до бесконечности.

Re: Сохраняем настройки

Здравствуйте, подскажите  как быть со значениями double? Как их сохранить?

Re: Сохраняем настройки

Я встречал несколько вариантов, все они немножко костыли. Например, переводить число в строку, а потом опять из строки делать число. Видел вариант, когда наследовались от SharedPreferences и создавали свой класс с поддержкой double. Еще были какие-то варианты.