2011-10-13 22 views

Trả lời

31

Có vẻ đó là bản sao của this question

Bạn có thể ghi đè lên public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, final String key) và khi nó được gọi với key.equals(<Your key for setting>) làm điều gì đó như:

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

Ngoài ra, làm tương tự trong onCreate() để có sở thích của bạn màn hình thiết lập ban đầu thích hợp .

3

Bạn có thể nhận giá trị hộp kiểm. Và sau đó, để bật/tắt tùy chọn, bạn có thể sử dụng pref.setEnabled(false); Để bật, chỉ cần sử dụng cùng chức năng và đặt giá trị thực.

24

Là một biến thể, có thể đặt "phụ thuộc" vào 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> 

Về cơ bản, em bé không thể chơi với cha mẹ khi họ đang ngủ =)

+0

Bạn đang tuyệt vời thưa ông! – Mohamed

+0

Chính xác những gì tôi đang tìm kiếm ... Tôi đã vô hiệu hóa việc sử dụng trong mã của tôi, nhưng cần thiết để cho người dùng biết rằng họ đã bị vô hiệu hóa để họ có thể bật tính năng này. – ShadowZzz

Các vấn đề liên quan