2012-08-09 13 views
5

मुझे एक उदाहरण-ट्यूटोरियल की आवश्यकता है कि प्राथमिकता गतिविधि में तत्व को सक्रिय और निष्क्रिय कैसे करें।प्राथमिकता को सक्रिय और निष्क्रिय करें

उदाहरण के लिए जब वाई-फाई चेक बॉक्स को अचयनित किया गया है तो नीचे दी गई तस्वीर में मैं नेटवर्क अधिसूचना चेक बॉक्स को स्पर्श नहीं कर सकता और यह ग्रे बदल जाता है, जब वाई-फाई चेक बॉक्स चयनित होता है तो मैं अन्य चेक बॉक्स को स्पर्श कर सकता हूं ।

व्हाई-फाई चेकबॉक्स सक्षम होने पर मैं वाई-फाई नेटवर्क टैब को कैसे पॉप्युलेट कर सकता हूं? निर्भरता = "" कोड:

enter image description here

+0

समस्या का समाधान करती है तो यह आपके उत्तर को स्वीकार करता है –

उत्तर

16

हम वरीयता जो एक और वरीयता से एंड्रॉयड निर्भर करता है में बाहर preferences.xml फ़ाइल में जोड़ने की जरूरत है।

उदाहरण के लिए:

 <CheckBoxPreference 
      android:key="checkBox" 
      android:summary="On/Off" 
      android:title="Enable" /> 

     <ListPreference 
      android:entries="@array/listOptions" 
      android:entryValues="@array/listValues" 
      android:key="listpref" 
      android:summary="List preference example" 
      android:title="List preference" 
      android:dependency="checkBox" /> 
0

जब वरीयता गतिविधि onResume विधि जांच वाईफाई कनेक्शन की स्थिति में शुरू होता है, या जो भी आप चाहते हैं और सक्षम/अक्षम उचित वरीयता।

यह आपको एक सामान्य विचार देने के लिए, सरल उदाहरण के समान दिख सकता है।

@Override 
protected void onResume() { 
    super.onResume(); 
    boolean isConnected = getConnectionStatus(); 

    if(isConnected) { 
    connPreference.setEnabled(false); 
    } else { 
    connPreference.setEnabled(true); 
    } 
} 
6

आपकी प्राथमिकताओं गतिविधि को OnSharedPreferenceChangeListener लागू करना चाहिए। श्रोता के साथ गतिविधि को पंजीकरण और पंजीकरण रद्द करना सुनिश्चित करें।

फिर onResume() और onSharedPreferenceChanged दोनों विधियों में यह निर्धारित करने के लिए नियंत्रित प्राथमिकता की स्थिति का मूल्यांकन किया जाता है कि निर्भर प्राथमिकता को सक्षम या अक्षम किया जाना चाहिए या नहीं।

@Override 
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
     final String key) { 
    if (key.equals(PREFERENCE_KEY)) { 
     // handle setting enabled or disabled depending on value of preference 
     if (sharedPreferences.getBoolean(key, false)) { 
      // prefField.setenabled(true); 
     } else { 
      // prefField.setenabled(false); 
     } 

    } 
} 

यदि आप वरीयता श्रेणी का भी उपयोग करते हैं तो आप पूरी तरह से श्रेणी को सक्षम या अक्षम भी देख सकते हैं।

+0

'prefField' क्या है? यह कैसे घोषित करें? – Bishan

+0

prefField वह वरीयता मान है जिसे आप सक्षम/अक्षम करना चाहते हैं। इसलिए PREFERENCE_KEY के लिए मैं PREFERENCE_KEY_CHILD को सक्षम/अक्षम करना चाहता हूं, इसलिए prefField PREFERENCE_KEY_CHILD है। –

+0

आपके उत्तर के लिए धन्यवाद :) – Bishan

संबंधित मुद्दे