Android - SharedPreferences - Настройка кода на основе значения предпочтения? - PullRequest
0 голосов
/ 09 февраля 2019

Реализация выбранных пользователем предпочтений в моем коде - это новое завоевание для меня.
Я успешно реализовал часть предпочтений в коде, но мог бы воспользоваться советом.

Я решил использовать Preferences-API и PreferenceFragment для моих App настроек.
Пока у меня SettingsActivity настроен, работает и корректно обновляет новые значения.
Однако некоторыепомощь необходима сейчас, когда я внедряю значения предпочтений в код.

Есть 2 Preferences, которые я пытаюсь внедрить в код.
Однако на данный момент яОбсудим только 1 из них. Подробности следующие:

Предпочтение = Тип уведомления
( ключ = pref_notificationType) - ( постоянная строка = PREF_NOTIFICATION_TYPE )

Значения:
Звук и вибрация
Только звук
Только вибрация
Silent

( ПРИМЕЧАНИЕ: Это точные имена значений для этого Preference).


Я хочу сделать что-то вроде этого, за исключением правильного и эффективного:

public void notificationType() {

    SharedPreferences getPrefs = PreferenceManager
        .getDefaultSharedPreferences(getApplicationContext());

    final String notifType = 
        getPrefs.getString(PREF_NOTIFICATION_TYPE, "Sound and Vibration");

    switch (notifType) {

        case ("Sound and Vibration"):
            //  Create Notification with SOUND (AND) VIBRATION
            break;

        case ("Sound only"):
            //  Create Notification with SOUND (only)
            break;

        case ("Vibrate only"):
            //  Create Notification with VIBRATION (only)
            break;

        case ("Silent"):
            //  Create Notification SILENTLY
            break;

        default:
            //  The default is "Sound and Vibration"
            break;
    }
}


Если кто-нибудь мог бы пожалуйстаДайте несколько советов, как это сделать, я был бы очень признателен!

Заранее спасибо!

1 Ответ

0 голосов
/ 09 февраля 2019

Я думаю, что в этом случае лучше всего создать Enum и сравнить его с swithc.

enum NotificationType {
  SOUND_AND_VIBRATE, SOUND_ONLY, VIBRATE_ONLY, SILENT 
}
//and

switch (NotificationType) {
      case SOUND_AND_VIBRATE:
      case SOUND_ONLY:
      case VIBRATE_ONLY:
      case SILENT:
}
...