2013-05-08 10 views
5

कहलाते हुए चयनित onItemSelected विधि कॉल किए बिना चयनित स्पिनर स्थिति को कुछ बदलना संभव है?बिना स्पिनर आइटम को सेट करने के लिए कैसे सेट करें

मूल रूप से जो मैं करने की कोशिश कर रहा हूं वह स्पिनर में पहले चयनित आइटम पर वापस जाता है क्योंकि उनमें से एक चयनित होने पर एक संवाद दिखाता है। जब उपयोगकर्ता बैक बटन हिट करता है तो स्पिनर अभी भी दिखाता है कि वे उस स्थिति पर हैं जो संवाद को दिखाए जाने पर दिखाता है।

तो क्या spinner.setSelection(position) का उपयोग करके वापस लौटने पर इसे कॉल करने से रोकने का कोई तरीका है या क्या स्थिति को बनाए रखने का एक तरीका है जो चयनित रहने से संवाद दिखाता है?

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
    switch(arg2){ 
    case 0: 

     previousSelection = 1; 
     mNavButtonClick.onNavButtonClick(1); 

     break; 
    case 1: 
     previousSelection = 2; 
     mNavButtonClick.onNavButtonClick(2); 

     break; 
    case 2: 
     previousSelection = 3; 
     mNavButtonClick.onNavButtonClick(3); 
     break; 
    case 3: 
     previousSelection = 4; 
     mNavButtonClick.onNavButtonClick(4); 
     break; 
    case 4: 
     previousSelection = 5; 
     mNavButtonClick.onNavButtonClick(5); 
     break; 
    case 5: 
        //this case shows the dialog 
     mNavButtonClick.onNavButtonClick(6); 
     break; 
    default: 
     break; 
    } 
} 

संवाद नहीं दिखाया जाता, उपयोगकर्ता संवाद को बंद करने वापस बटन पर क्लिक करें और onDismiss में मैं

spinner.setSelection(previousSelection); 

फोन वापस पिछले चयन पर जाने के लिए लेकिन इस दृश्य को फिर से फिर से पैदा करता है जो मैं न क्योंकि मैं पहले से ही देख रहा हूं, मैं सिर्फ यह दिखाना चाहता हूं कि मैं स्पिनर

+0

एडाप्टर ताज़ा करके देखें। – NarendraJi

+0

@NarendraDroidWorm जो कि चयन स्थिति को '0' पर सेट करने वाली सूची को पुनर्निर्माण करने जा रहा है, जो वास्तव में – tyczj

+0

चयनित अंतिम स्थिति पर' सेट चयन 'को कॉल करने से बहुत अलग नहीं है, वर्तमान कोड पोस्ट करें, कोड – stinepike

उत्तर

0

AFAIK में देख रहा हूं, फ़ंक्शन को रोकने के लिए कोई रास्ता नहीं है। लेकिन, आप (जब आप setSelection का उपयोग करें) नहीं समारोह में कोड एक सरल यदि का उपयोग करते हुए निष्पादित करने के लिए यहाँ स्वीकार किए जाते हैं जवाब की जाँच कर सकते हैं:

Undesired onItemSelected calls

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