2011-01-25 2 views
9

पर वरीयताओं की एक गतिशील सूची के तहत नेस्टेड वरीयतास्क्रीन, मैं प्रविष्टियों की एक गतिशील सूची के साथ एक प्राथमिकता स्क्रीन बनाने की कोशिश कर रहा हूं, और उनमें से प्रत्येक पर क्लिक करते समय, मेरे पास प्राथमिकताओं की एक और स्क्रीन है। उदाहरण के तौर पर, मेल खातों की एक सूची के बारे में सोचें और प्रत्येक व्यक्ति को अपनी खाता सेटिंग उपलब्ध हो।एंड्रॉइड

जबकि मैं घोंसला बना सकता हूं, मैं केवल PreferenceScreens का उपयोग करना चाहता हूं, इसे प्रत्येक के लिए कोड में उप प्राथमिकता संरचना बनाने के बिना आसानी से एकाधिक प्रविष्टियों तक स्केल नहीं किया जा सकता है।

मुझे एंड्रॉइड यूआई में कई अलग-अलग बदलाव दिखाई देते हैं।

क्या इस तरह की संरचना बनाने के लिए एक अनुशंसित तरीका है?

possibilites में शामिल हैं:

  1. अलग, स्वतंत्र गतिविधियों
    वर्क्स लेकिन मेरी राय में गन्दा है

  2. नेस्ट, कोड बनाया PreferenceScreens रखरखाव के लिए पिछवाड़े में
    दर्द और यह वरीयताओं का मतलब अब एक्सएमएल टुकड़े के रूप में संग्रहीत नहीं हैं

  3. नेस्टेड, बढ़ाए गए वरीयताओं
    मैं

  4. एक "उप" PreferenceScreen कि हर एक
    के लिए setPreferenceScreen() का उपयोग कर दिखाया गया है एक उप पेड़ में एक और एक्सएमएल फ़ाइल का विस्तार करने के लिए एक तरह से मैं एक तरह से छिपाने के लिए नहीं मिल सकता है नहीं मिल सकता है "टेम्पलेट" वरीयता स्क्रीन और यह नेविगेशन तोड़ता है।

नमूना XML:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:title="@string/prefs_title"> 
    <EditTextPreference android:key="add_console" 
     android:title="@string/prefs_add_console"></EditTextPreference> 
    <PreferenceCategory android:title="@string/prefs_consoles_title" 
     android:key="list"> 
     <PreferenceScreen android:summary="http://cctv.icode.co.uk/" 
      android:title="iCode Console"> 
     </PreferenceScreen> 
     <PreferenceScreen android:summary="http://test.icode.co.uk/" 
      android:title="Test Console"> 
     </PreferenceScreen> 
    </PreferenceCategory> 
    <PreferenceScreen android:title="Console (template)" 
     android:key="console"> 
     <EditTextPreference android:title="@string/prefs_console_host" 
      android:summary="@string/prefs_not_set" android:key="host"></EditTextPreference> 
     <CheckBoxPreference android:title="@string/prefs_console_auth" 
      android:summary="@string/prefs_console_auth_summary" android:key="auth"></CheckBoxPreference> 
     <EditTextPreference android:shouldDisableView="true" 
      android:title="@string/prefs_console_authuser" android:key="authuser" 
      android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference> 
     <EditTextPreference android:title="@string/prefs_console_authpass" 
      android:key="authpass" android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference> 
     <CheckBoxPreference android:title="@string/prefs_console_pair" 
      android:summary="@string/prefs_console_pair_summary" android:key="pair"></CheckBoxPreference> 
    </PreferenceScreen> 
</PreferenceScreen> 

मैं list तहत प्रविष्टियों गतिशील हो सकता है और प्रत्येक के तहत console वरीयताओं दिखाना चाहते हैं।

अन्य सभी विचारों का स्वागत है।

धन्यवाद

+0

मुझे यकीन नहीं है कि मैं सवाल समझता हूं। हम केवल मूलभूत कार्यान्वयन के साथ जो भी आप चाहते हैं (मुझे लगता है) कर सकते हैं। वर्तमान कार्यान्वयन के बारे में क्या है जो आपको पसंद नहीं है? – user432209

+0

अच्छी तरह से, मैं इसे अभी तक कार्यान्वित करने का तरीका नहीं समझ सकता ...: p – Deanna

+0

मुझे पता है कि मैं प्रत्येक उप पेड़ को डायनाइम प्रविष्टियों के नीचे कोड में जोड़ सकता हूं, लेकिन उम्मीद कर रहा था कि मैं एक एक्सएमएल को बढ़ाकर उप पेड़ जोड़ सकता हूं फ़ाइल। – Deanna

उत्तर

0

आप गतिशील वरीयताओं के लिए इस्तेमाल मुख्य रूप में एक्सएमएल फाइल को शामिल करने की कोशिश की है?

इस तकनीक को इन 2 लेख में विस्तृत है:

http://www.aslingandastone.com/2010/dynamically-changing-android-views/

http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html

वे कैसे क्या आप अपनी बात 3 में पूछ रहे थे ऐसा करने का तरीका:

नेस्ट, फुलाया वरीयताओं

अगर आप अभी तक कि कोशिश की

<include 
    android:id="@+id/layout_to_nest" 
    layout="@layout/layout_to_nest" /> 

मैं नहीं जानता लेकिन यदि नहीं, यह एक कोशिश के लायक हो रहा है:

मूल रूप से विचार इस सरल टैग का उपयोग करने के लिए एक मौजूदा एक में एक और एक्सएमएल फ़ाइल शामिल करने के लिए किया जाएगा !

+0

मैं कोशिश करता हूं कि जब मुझे मौका मिलता है, धन्यवाद। – Deanna