2012-08-03 41 views
6

Tomemos por ejemplo este pequeño archivo preference.xml:android: atributo de visibilidad en las preferencias xml no funciona? (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> 

El androide atributo: la visibilidad = "invisible" para la última casilla de verificación no funciona; este atributo (o ido para el caso) no funciona para las preferencias?

No tengo nada en el código para interferir con su visibilidad, solo curiosidad por qué esto no funciona.

Respuesta

10

android:visibility se usa para mostrar y ocultar View s pero no es válido para Preference. El documentation para Preference enumera los atributos XML disponibles, pero ninguno de ellos es lo que desea.

Es es, sin embargo, es posible agregar y eliminar preferencias de un PreferenceScreen programáticamente.

0

Debes utilizar el método setVisible para cambiar la visibilidad.

Primero, inicialice la preferencia de casilla de verificación.

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

continuación

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

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