यह मैं पागल गाड़ी चला रहा है, क्योंकि यह कुछ मैं पहले किया है, लेकिन क्यों यह अब काम नहीं कर रहा को समझ नहीं सकता है ...एंड्रॉयड स्पिनर - onItemSelected/setOnItemSelectedListener को ट्रिगर नहीं
मैं एक मेनू मिल गया है बटन, menu.xml
फ़ाइल के माध्यम से सामान्य तरीके से कार्यान्वित किया गया है और onOptionsItemSelected
विधि में स्विच के साथ विधि है, जो स्पिनर बनाता है और प्रदर्शित करता है।
मैंने setOnItemSelectedListener
जोड़ा है, लेकिन यह कभी भी ट्रिगर नहीं लगता है। स्पिनर दिखाई देता है, मैं एक विकल्प या बैक आउट चुनता हूं, न तो onItemSelected
या onNothingSelected
कहा जाता है।
मेनू-बटन-हैंडलिंग स्विच स्टेटमेंट के "केस" और "वापसी सत्य" के बीच सभी कोड यहां दिए गए हैं।
String[] widgetModes = {"Mode 1", "Mode2"};
ArrayAdapter<String> widgetModeAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, widgetModes);
widgetModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner widgetModeSpinner = new Spinner(this);
widgetModeSpinner.setAdapter(widgetModeAdapter);
widgetModeSpinner.setPrompt("Choose Widget Mode");
widgetModeSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
{
Toast.makeText(topThis, "derp", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parentView)
{
Toast.makeText(topThis, "herf", Toast.LENGTH_LONG).show();
}
});
widgetModeSpinner.performClick();
कोई भी विचार - (अनुप्रयोग में अन्य सभी टोस्ट के लिए ठीक काम करता है topThis
एक चर गतिविधि के संदर्भ की चर्चा करते हुए है)? मुझे अस्पष्टता से संदेह है कि तथ्य यह है कि मैं Spinner
प्रोग्रामेटिक रूप से समस्या बना रहा हूं ...
शायद parentView.getContext() का प्रयास करें? क्या आपको इसे यूआई में कहीं जोड़ने की ज़रूरत नहीं है? - इसका मतलब यह हो सकता है कि आइटम चयन जैसे UI इंटरैक्शन ईवेंट स्पिनर को पास नहीं हो रहे हैं। – Jems
टिप के लिए धन्यवाद - उन पंक्तियों के साथ कुछ कार्यान्वित करना समाप्त हो गया। लेआउट में एक अदृश्य स्पिनर जोड़ा गया, निष्पादन को छोड़कर सब कुछ ले जाया गया मेनू विधि से बाहर निकलें और क्रिएट में कॉल किए गए एक में। यह सुनिश्चित करने के लिए लगता है कि श्रोता वर्तमान में फुलाए गए लेआउट, या कुछ ऐसे "संलग्न" है। SetContentView (R.layout.main) के संबंध में कोड की स्थिति; महत्वपूर्ण है ... – Greg
मुझे लगता है कि मेरे बाकी कोड में कभी-कभी लेआउट को फिर से भरना शामिल होता है (setContentView (R.layout.main) का उपयोग करके;) समस्याएं भी पैदा करता है ... लेआउट के बाद फिर से सेट नहीं होने पर श्रोताओं को अब संलग्न नहीं किया जाता है reinflated। – Greg