2010-09-22 4 views
69

मैं एक सूची पुनर्प्राप्ति आइटम में डिफ़ॉल्ट वैल्यू सेट करने का प्रयास कर रहा हूं।अपने मूल्यों में से किसी एक सूची में संदर्भ कैसे करें

<ListPreference android:key="notification_delay" 
    android:title="@string/settings_push_delay" 
    android:entries="@array/settings_push_delay_human_value" 
    android:entryValues="@array/settings_push_delay_phone_value" 
    android:defaultValue="????"> 
</ListPreference> 

दो सरणियों:

<string-array name="settings_push_delay_human_value"> 
    <item>every 5 minutes</item> 
    <item>every 10 minutes</item> 
    <item>every 15 minutes</item> 
</string-array> 
<string-array 
    name="settings_push_delay_phone_value"> 
    <item>300</item> 
    <item>600</item> 
    <item>900</item> 
</string-array> 

जब मैं वरीयता गतिविधि में जाते हैं, ListPreference का कोई आइटम का चयन किया

यहाँ मेरी preference.xml फ़ाइल का एक नमूना है। मैंने "एंड्रॉइड: डिफ़ॉल्ट वैल्यू" में 1 जैसे int मान सेट करने का प्रयास किया है, "10 मिनट" चुनने के लिए fied लेकिन यह काम नहीं करता है।

<ListPreference android:key="notification_delay" 
    android:title="@string/settings_push_delay" 
    android:entries="@array/settings_push_delay_human_value" 
    android:entryValues="@array/settings_push_delay_phone_value" 
    android:defaultValue="1"> 
</ListPreference> 

कोई विचार?

उत्तर

91

आपको मान निर्दिष्ट करने की आवश्यकता है। तो डिफ़ॉल्ट रूप से चयनित पहली प्रविष्टि प्राप्त करने के लिए अपने उदाहरण में defaultValue="300" निर्दिष्ट करें।

+0

यह अच्छी तरह से काम करता है, प्रोग्रामेटिक रूप से मेरे पास 300 मूल्य है। लेकिन वास्तव में मैं चाहता हूं कि डिफ़ॉल्ट रूप से ListPreference की पंक्तियों में से एक "ग्राफिक" का चयन करना है। –

+1

मेरे आवेदन में यह ठीक है: "डिफ़ॉल्ट वैल्यू" के लिए निर्दिष्ट मान वरीयता सूची में चुना जाता है, जब ऐप पहली बार शुरू होता है। ऐसा क्यों नहीं है कि यह आपके लिए काम नहीं करेगा ... – sven

+0

मेरी गलती क्षमा करें। मैंने डिफ़ॉल्ट मानों और सरणी में मानों के बीच एक त्रुटि की है। यह मैंने कोशिश की सभी फोन पर ठीक काम करता है। धन्यवाद। –

19

एक ही स्थिति में होने के लिए हुआ। एक सतत डिफ़ॉल्ट मान निर्दिष्ट करना। लेकिन ग्राफिकल रूप से नहीं चुना गया था। मैंने एप्लिकेशन डेटा को मंजूरी दे दी। और फिर यह उम्मीद के रूप में काम किया। तो नई XxxPreference आइटम जोड़ते समय देव समय पर स्पष्ट हो सकता है।

+4

मेरे लिए वही है। मैंने एप्लिकेशन डेटा को मंजूरी दे दी और सब कुछ ठीक से काम करता है! –

2

यदि यह सूची से मान्य मान है, तो ऐप को दोबारा इंस्टॉल करें। यह काम करेगा।

11

स्वेन के उत्तर के अतिरिक्त, आपको प्रारंभिक गतिविधि में setDefaultValues ​​() विधि को कॉल करना होगा। यह एक बार सभी डिफ़ॉल्ट मान सेट करेगा।

public class MainActivity extends Activity { 
    protected void onCreate(final Bundle savedInstanceState) { 
    // Set all default values once for this application 
    // This must be done in the 'Main' first activity 
    PreferenceManager.setDefaultValues(this, R.xml.preferences, false); 
    ... 
    } 
} 
संबंधित मुद्दे

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