एंड्रॉइड स्पिनर के आसपास अपना सिर लेने में मुझे थोड़ी देर लग गई है। कई विफल कार्यान्वयन प्रयासों के बाद, और कई प्रश्नों को आंशिक रूप से मेरे खुद के समान पढ़ने के बाद, लेकिन without satisfactory answers, और कुछ बिना किसी उत्तर के, उदाहरण के लिए here और here, मुझे अंत में यह पता चला है कि एंड्रॉइड में "स्पिनर" डेस्कटॉप ऐप्स से "ड्रॉप-डाउन सूची" या HTML में एक चयन के समान नहीं है। हालांकि, मेरा ऐप क्या है (और मैं उन सभी अन्य पोस्टर्स के ऐप्स का अनुमान लगा रहा हूं जिनके प्रश्न समान हैं) जरूरत कुछ ऐसा है जो एक स्पिनर की तरह ड्रॉप-डाउन बॉक्स की तरह काम करता है।एंड्रॉइड स्पिनर का उपयोग कैसे करें ड्रॉप-डाउन सूची
मेरे दोनों समस्याओं क्या मैं पहली बार idiosynchrasies होने की OnItemSelectedListener माना के साथ कर रहे हैं (मैं इस साइट पर अलग सवाल के रूप में इन देखा है लेकिन नहीं एक के रूप में):
- पहली सूची आइटम की प्रारंभिक चयन उपयोगकर्ता की बातचीत के बिना स्वचालित रूप से ट्रिगर किया जाता है।
- जब आइटम पहले से चुना गया था तो उपयोगकर्ता द्वारा फिर से चुना जाता है, इसे अनदेखा किया जाता है।
अब मुझे लगता है कि, जब आप इसके बारे में सोचते हैं, यह है कि यह एक स्पिनर पर होने के लिए समझ में आता है - यह चयनित एक डिफ़ॉल्ट मान के साथ शुरू करने के लिए है, और आप यह केवल उस मान बदलने के लिए स्पिन, एक मान को फिर से चयन न करें - the documentation वास्तव में कहता है: "यह कॉलबैक केवल तभी लागू होता है जब नई चयनित स्थिति पहले चयनित स्थिति से अलग होती है"। और मैंने पहले स्वचालित चयन को अनदेखा करने के लिए answers suggesting that you set up a flag देखा है - मुझे लगता है कि अगर कोई दूसरा रास्ता नहीं है तो मैं इसके साथ रह सकता हूं।
लेकिन चूंकि मैं क्या वास्तव में चाहते हैं एक ड्रॉप-डाउन सूची है जो एक ड्रॉप-डाउन सूची के रूप में व्यवहार है चाहिए (और के रूप में उपयोगकर्ताओं और उम्मीद करनी चाहिए सकता है), मैं क्या जरूरत है कुछ एक स्पिनर कि एक बूंद की तरह बर्ताव की तरह है एक कॉम्बो-बॉक्स की तरह -डाउन। मुझे किसी भी स्वचालित प्री-चयन (जो मेरे श्रोता को ट्रिगर किए बिना होना चाहिए) के बारे में परवाह नहीं है, और मैं प्रत्येक चयन के बारे में जानना चाहता हूं, भले ही यह पहले जैसा ही हो (भले ही उपयोगकर्ता चयनित एक ही आइटम फिर से)।
तो ... क्या एंड्रॉइड में ऐसा कुछ है जो ऐसा कर सकता है, या स्पिनर को ड्रॉप-डाउन सूची की तरह व्यवहार करने के लिए कुछ कामकाज है? यदि इस साइट पर इस तरह का एक प्रश्न है जो मुझे नहीं मिला है, और जिसके पास संतोषजनक उत्तर है, तो कृपया मुझे बताएं (जिस स्थिति में मैं ईमानदारी से प्रश्न दोहराने के लिए क्षमा चाहता हूं)।
हां, कक्षा को विस्तारित करना निश्चित रूप से जाने का तरीका है। चालाक कार्यान्वयन, बीटीडब्ल्यू। – davidcesarino
धन्यवाद फेलिक्स, मेरे द्वारा +1। चयन को बदलने के आपके विचार ने मुझे एक ऐसे विकल्प के साथ आने में मदद की जो मेरी दोनों समस्याओं को हल करता है (स्वचालित प्रारंभिक चयन को भी रोकता है)। चूंकि मेरा समाधान केवल एक अधिक विशिष्ट उपयोग के मामले के लिए हो सकता है, हालांकि (और जब से मैं अजीब नहीं होना चाहता हूं और अपना खुद का उत्तर स्वीकार करता हूं जो आपके आधार पर है), मुझे आपको टिक देने में खुशी है। चीयर्स! माईस्पिनर में –
मैंने पुराने चयन को रीसेट करने के लिए निम्नलिखित का प्रयास किया लेकिन यह काम नहीं करता है। @ ओवरराइड सार्वजनिक शून्य सेट चयन (int स्थिति) {super.set चयन (INVALID_POSITION); super.setSelection (स्थिति); } –