2012-08-03 13 views
6

लें इस छोटे से preference.xml फ़ाइल:एंड्रॉइड: वरीयताओं में दृश्यता विशेषता xml काम नहीं कर रही है? (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> 

विशेषता एंड्रॉयड: दृश्यता = पिछले चेकबॉक्स काम नहीं करता है के लिए "अदृश्य"; यह विशेषता (या उस मामले के लिए चली गई) वरीयताओं के लिए काम नहीं करती है?

मेरे पास दृश्यता के साथ गड़बड़ करने के लिए कोड में कुछ भी नहीं है, केवल उत्सुक क्यों यह काम नहीं करता है।

उत्तर

10

android:visibilityView एस दिखाने और छिपाने के लिए उपयोग किया जाता है लेकिन यह Preference के लिए मान्य नहीं है। Preference के लिए उपलब्ध XML विशेषताओं को सूचीबद्ध करता है, लेकिन उनमें से कोई भी आप चाहते हैं।

यह है, हालांकि, PreferenceScreen से प्रोग्रामिक रूप से वरीयताओं को जोड़ने और निकालने के लिए संभव है।

0

आपको दृश्यता बदलने के लिए setVisible विधि का उपयोग करना होगा।

सबसे पहले, चेकबॉक्स प्राथमिकता आरंभ करें।

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

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

// Hide the check box preference 
showSigPreference.setVisible(false); 
संबंधित मुद्दे