2011-10-13 1 views

ответ

31

Кажется, это дубликат this question

Вы можете переопределить public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, final String key) и когда дозвонились с key.equals(<Your key for setting>) сделать что-то вроде:

boolean isEnabled = sharedPreferences.getBoolean(key, true); 
getPreferenceScreen().findPreference("list box preference key").setEnabled(isEnabled); 
getPreferenceScreen().findPreference("list box preference key").setEnabled(!isEnabled); 

Кроме того, сделать то же самое в onCreate() иметь ваши предпочтения экран правильную начальную настройку ,

3

Вы можете получить значение флажка. И затем, чтобы включить/отключить настройки, вы можете использовать pref.setEnabled(false); Чтобы включить, просто используйте ту же функцию и поместите истинное значение.

24

В качестве варианта можно включить «зависимость» в ListBoxPref.

<PreferenceCategory 
android:key="key1" 
android:title="@string/title1"> 
<SwitchPreference 
    android:key="parents" 
    android:summaryOff="@string/do_smthng" 
    android:summaryOn="@string/do_smthng" 
    android:switchTextOff="@string/i_am_sleeping" 
    android:switchTextOn="@string/i_have_free_time" /> 
<CheckBoxPreference 
    android:key="baby" 
    android:dependency="parents" 
    android:title="@string/basic_habbits" 
    android:summaryOff="@string/play_with_parents" 
    android:summaryOn="@string/play_with_parents" 
    android:defaultValue="true" /> 
</PreferenceCategory> 

В принципе, ребенок не может играть с родителями, когда они спят =)

+0

Вы удивительны сэр! – Mohamed

+0

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

Смежные вопросы