7

मैं टैबलेट के लिए एंड्रॉइड में सेटिंग वरीयताओं जैसे कुछ करने की कोशिश कर रहा हूं।विवरण में वही स्क्रीन प्राथमिकता कैसे लोड करें वरीयता फ़्रेगमेंट

जब मैं "अधिक" पर क्लिक करता हूं तो "वायरलेस "नेटवर्क" वरीयता स्क्रीन सही खंड पर प्रदर्शित होती है, अगर मैं "वीपीएन" को स्पर्श करता हूं, तो उसी खंड में "वीपीएन" वरीयता स्क्रीन खोला जाता है।

मैं यह कैसे कर सकता हूं?

इस

मेरी प्राथमिकता एक्सएमएल है

<PreferenceScreen android:title="Title A"> 
     <PreferenceScreen android:title="TITLE B"> 
      <PreferenceCategory 
       android:title="category"> 
       <ListPreference android:key="list" 
        android:title="list" android:entries="@array/list_vals" 
        android:entryValues="@array/list_vals1" 
        android:defaultValue="1" android:dialogTitle="list title" 
        android:negativeButtonText="cancel" /> 
      </PreferenceCategory> 
     </PreferenceScreen> 
</PreferenceScreen> 

समस्या मैं शीर्षक बी के साथ नेस्टेड वरीयता स्क्रीन नहीं चाहते है पूरे स्क्रीन मैं सिर्फ सही टुकड़ा के स्थान पर लोड किया जा करना चाहते हैं पर लोड करने के लिए ...

नोट: है कि मैं अपने उदाहरण बनाने के लिए इस दस्तावेज़ का इस्तेमाल किया अब तक http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders

enter image description here

enter image description here

संपादित करें *

इस मैं एक लेआउट की जरूरत नहीं है, तो मैं कैसे पता कर सकते हैं मेरे मालिक टुकड़ा आईडी है क्या और मेरा विस्तार टुकड़ा आईडी क्या है मेरी गतिविधि

public class SettingsActivity extends PreferenceActivity { 
    @Override 
    public void onBuildHeaders(List<Header> target) { 
     loadHeadersFromResource(R.xml.preference_headers, target); 
    } 
} 

है ?

+0

मास्टर-विस्तार लेआउट का उपयोग करना, बस एक और के साथ विस्तार टुकड़ा की जगह, उप विस्तार टुकड़ा । –

+0

मैं यह कैसे कर सकता हूं? मैंने इस http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders का उपयोग अब तक किया है ... और यहां खंड लेनदेन के साथ कोई जोड़ नहीं है – Lukap

उत्तर

14

लघु उदाहरण के लिए, एक PreferenceActivity परिभाषित करते हैं, और मुख्य श्रेणियों के लिए एक हेडर फ़ाइल प्रदान करते हैं:

कक्षा SettingsActivity:

public class SettingsActivity extends PreferenceActivity { 
    @Override 
    public void onBuildHeaders(List<Header> target) { 
     super.onBuildHeaders(target); 
     loadHeadersFromResource(R.xml.headers,target); 
    } 
} 

फ़ाइल /res/xml/headers.xml:

<?xml version="1.0" encoding="utf-8"?> 

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> 
    <header android:title="Preference Header" 
     android:fragment="com.example.SettingsDemo.PrefFragment"/> 
</preference-headers> 

एक बनाएं PreferenceFragmentandroid:fragment में संदर्भित रहा है ऊपर, अपने स्वयं के पसंदीदा फ़ाइल प्रदान करते हैं:

वर्ग PrefFragment:

public class PrefFragment extends PreferenceFragment { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.prefs); 
    } 
} 

फ़ाइल /res/xml/prefs.xml:

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
<PreferenceCategory android:title="Preferences"> 
<SwitchPreference android:title="Preference" /> 
    <PreferenceScreen android:title="Sub Preferences" 
     android:fragment="com.example.SettingsDemo.SubPrefFragment"/> 
</PreferenceCategory> 
</PreferenceScreen> 

एक बच्चे PreferenceFragment बनाएं जैसा कि ऊपर android:fragment में संदर्भित, अपनी खुद की वरीयता फाइल भी प्रदान करें:

कक्षा SubPrefFragment:

public class SubPrefFragment extends PreferenceFragment { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.sub_prefs); 
    } 
} 

फ़ाइल /res/xml/sub_prefs.xml:

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory android:title="Sub Preferences"> 
     <CheckBoxPreference android:title="Sub Preference"/> 
    </PreferenceCategory> 
</PreferenceScreen> 

यह है कि। PreferenceActivity स्वचालित रूप से सभी बच्चे के टुकड़े दिखाएगा।

परिणाम:

मुख्य PreferenceFragment: enter image description here

उप PreferenceFragment द्वारा बदल दिया, एक ही शीर्षक के अंतर्गत: enter image description here

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