मेरे पास दो स्पिनर हैं जो मैं पारस्परिक रूप से अनन्य अर्थ में एक दूसरे से "बंधे" होना चाहता हूं: यदि आप एक आइटम का चयन करते हैं, तो उस आइटम का टेक्स्ट लाल हो जाता है और शीर्ष पर दिखाई देता है, जबकि दूसरा प्रारंभिक ("शीर्षक") चयन (यदि कोई अन्य आइटम पहले चुना गया था) प्रदर्शित करने के लिए वापस चला जाता है, और इसका पाठ सफेद हो जाता है।दो स्पिनर "सिंक्रनाइज़िंग"
यह सब onItemSelected श्रोताओं के माध्यम से किया जाता है: "इस मुद्दे को स्पिनर के लिए"
sectionSpin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
issueSpin.setSelection(0);
((TextView) issueSpin.getChildAt(0)).setTextColor(Color.parseColor("#FFFFFF"));
((TextView) arg1).setTextColor(Color.parseColor("#E3170D"));
....
और इसके विपरीत। मेरी समस्या यह है कि, यदि मैं एक स्पिनर से दूसरी तरफ जा रहा हूं और मैं शीर्ष आइटम का चयन करता हूं, तो ITemSlectedListener पंजीकृत नहीं होता है क्योंकि आइटम का चयन पहले ही चुना जा चुका है।
मुझे बताया गया है कि यह संभव नहीं है। या, बल्कि, मुझे बताया गया है कि किसी इटैम चयनित चयनकर्ता के लिए पहले से चयनित किसी आइटम पर आग लगाना असंभव है। जबकि मुझे एहसास है कि यह तकनीकी रूप से सच है, यह समस्या अपेक्षाकृत सरल प्रतीत होती है और मुझे यकीन है कि वांछित प्रभाव उत्पन्न करने के लिए एक कामकाज होना चाहिए।
मैं कुछ के बारे में कुछ सवाल है कि मैं विचार कर रहा हूँ है:
- वहाँ जबकि अभी भी उनमें से एक को प्रदर्शित करने, अचयनित के रूप में एक स्पिनर में सभी आइटम स्थापित करने के लिए कोई तरीका है?
- क्या मैं
onItemSelectedListener
के संयोजन के साथ, संभवतः शीर्ष आइटम पर, एक अलग प्रकार की घटना का उपयोग कर सकता हूं (यानी 'सेटऑन टच लिस्टनर', 'सेटऑनक्लिक लिस्टनर', आदि)? - क्या मुझे
onItemSelectedListener
के बिना स्पिनर में स्वयं के दृश्यों पर खुद को एक अलग प्रकार की घटना का उपयोग करना चाहिए? - क्या आप उपरोक्त बुलेटपॉइंट्स में बताए गए लोगों की तुलना में बेहतर रणनीति खोजने में मेरी सहायता कर सकते हैं?
लेकिन यह ऐप के समग्र डिज़ाइन के लिए महत्वपूर्ण है कि मेनू एक स्पिनर की तरह खुलता है - यानी विकल्प ड्रॉप हो जाते हैं। – drewmoore
@ ड्रममोर मैंने एक उत्तर दिया जो प्रश्न में वर्णित समस्या हल करता है। मैंने पहली बार 'स्पिनर' उप-वर्गीकरण माना और जिम्मेदार विधि को ओवरराइड किया (जहां यह स्पष्ट है कि 'चयनित आइटम चयनित है' पर क्लिक किया गया है, लेकिन यह संभव नहीं था, क्योंकि विधि निजी है। यदि आप किसी अन्य माध्यम का उपयोग करके इसे इतनी बुरी तरह से चाहते हैं तो आप एनीमेशन का अनुकरण कर सकते हैं। हालांकि, अगर मेरा उत्तर आपकी मदद नहीं करता है क्योंकि प्रश्नों के कारण कुछ खुलासा नहीं किया गया है, तो आपको अपना प्रश्न संपादित करना चाहिए। – Shade