2012-08-03 32 views
6

Đưa ví dụ tập tin preference.xml nhỏ này:android: thuộc tính hiển thị trong tùy chọn xml không hoạt động? (Android 2.3)

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen android:title="@string/sig_title" xmlns:android="http://schemas.android.com/apk/res/android"> 
<ListPreference android:entries="@array/text_display_entries" android:title="@string/sig_style" android:key="text_style" android:entryValues="@array/text_display_values" /> 
<CheckBoxPreference android:title="@string/custom_font" android:key="tweaks_text" /> 
<CheckBoxPreference android:title="@string/col_random" android:key="random_color_pref" /> 
<CheckBoxPreference android:visibility="invisible" android:enabled="false" android:title="@string/sig_show" android:key="show_sig" /> 
</PreferenceScreen> 

Các android thuộc tính: tầm nhìn = "vô hình" đối với các hộp kiểm trước không hoạt động; thuộc tính này (hoặc đi cho rằng vấn đề) không hoạt động cho các sở thích?

Tôi không có bất kỳ thứ gì trong mã gây rối với khả năng hiển thị của nó, chỉ cần tò mò tại sao điều này không hiệu quả.

Trả lời

10

android:visibility được sử dụng để hiển thị và ẩn View giây nhưng không hợp lệ đối với Preference. documentation cho Preference liệt kê các thuộc tính XML có sẵn, nhưng không có thuộc tính nào trong số đó là những gì bạn muốn.

, tuy nhiên, có thể thêm và xóa tùy chọn từ PreferenceScreen theo chương trình.

0

Bạn phải sử dụng phương thức setVisible để thay đổi chế độ hiển thị.

Trước tiên, hãy khởi tạo tùy chọn hộp kiểm.

CheckBoxPreference showSigPreference = (CheckBoxPreference) findPreference("show_sig"); 

sau đó

// Show the check box preference 
showSigPreference.setVisible(true); 

// Hide the check box preference 
showSigPreference.setVisible(false);