Отключить предпочтение на основе значения его зависимости (проверка кода) - PullRequest
0 голосов
/ 19 февраля 2019

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

У меня есть 2 предпочтения.Один из них, я хочу, чтобы он зависел от значения другого.

Пример: мой параметр «Режим уведомления» имеет 2 параметра: «Таймер» и «Напоминание»

Если пользователь выбираетОпция «Таймер», я хочу, чтобы другие мои предпочтения были доступны для установки времени.

В противном случае, я хочу, чтобы предпочтение для установки таймера было отключено.

Вот что я придумал внутримой преф поменял слушателя:

if (key.equals(PREF_NOTIFICATION_MODE)) {

    Preference notifModePref = findPreference(key);
    notifModePref.setSummary(sharedPreferences.getString(key, ""));

    if(!notifModePref.equals("Timer Mode")) {

        Preference timerDurationPref = findPreference(PREF_TIMER_DURATION);
        timerDurationPref.onDependencyChanged(notifModePref, true);

    } else if(notifModePref.equals("Timer Mode")) {

        Preference timerDurationPref = findPreference(PREF_TIMER_DURATION);
        timerDurationPref.onDependencyChanged(notifModePref, false);
    }
}

Я не уверен, правильно ли я это делаю или правильное onDependencyChanged.

1 Ответ

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

Я выполнил Цель внутри if(key.equals), сославшись на рассматриваемый Preference, используя операторы if и комбинацию из onDependencyChanged() и установив .isEnabled(boolean), как требуется.

...