2011-01-21 14 views
6

मैं एप्लिकेशन के लिए कुछ सेटिंग्स को परिभाषित करने के लिए उपयोगकर्ता के लिए वरीयता सक्रियता का उपयोग कर रहा हूं।वरीयता सक्रियता उपयोगकर्ता इनपुट को मान्य करती है और त्रुटि संदेश दिखाती है

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

जब मुझे सत्यापन त्रुटि का पता चलता है, तो मैं स्क्रीन पर वरीयता संपादन संवाद बॉक्स को सक्रिय रखना चाहता हूं, ताकि मैं उपयोगकर्ता को सूचित करने के लिए त्रुटि संदेश सेट करने के लिए .getTextEdit()। SetError() विधि का उपयोग कर सकूं । हालांकि, मैं स्क्रीन पर संवाद बॉक्स को सक्रिय रखने में सक्षम नहीं था, क्योंकि यह OnPreferenceChangeListener कॉलबैक निष्पादित होने से ठीक पहले गायब होने जैसा लगता है।

कोई विचार?

+0

मुझे नहीं लगता कि यह किया जा सकता है, क्योंकि प्राथमिकता तब तक नहीं बदली जब तक उपयोगकर्ता ठीक क्लिक नहीं करता है, और उस समय तक बॉक्स पहले ही बंद हो जाता है, जब श्रोता कहलाता है। लेकिन हे, अगर किसी के पास कुछ विचार हैं या यदि यह हो सकता है, तो मुझे भी रूचि है। –

उत्तर

1

ठीक है, आप का उपयोग करने के पहले उपयोगकर्ता समाप्त हो गया है के लिए संपादित किया है एक घटना नहीं है, एंड्रॉयड देव में लिखा है:

इंटरफेस, केवल एक कॉलबैक विधि है onSharedPreferenceChanged()

मैं क्या करूँगा एक कस्टम प्राथमिकता, (जैसा कि http://developer.android.com/guide/topics/ui/settings.html#Custom में बताया गया है) लेकिन डायलॉग प्रेफरेंस को विस्तारित करने के बजाय मैं EditTextPreference का विस्तार करूंगा। हालांकि इसका परीक्षण नहीं किया है, लेकिन लगता है जैसे इसे काम करना चाहिए। शुभकामनाएँ :)

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