2013-04-15 27 views
6

के समान चयन पर एक कार्रवाई कैसे कर सकता हूं मैं स्पिनर से मूल्य का चयन करता हूं और जब मैं फिर से वही मान चुनता हूं तो क्लिक पर कोई कार्रवाई नहीं की जाती है।मैं स्पिनर मूल्य

+2

पहले से चयनित मूल्य का ट्रैक रखने के ... और जाँच करें कि क्या वर्तमान चयन चयनित मान पिछले एक – Pragnani

+0

जांच वर्तमान चयन valu और पिछले एक दोनों एक ही कर रहे हैं या नहीं। –

उत्तर

8

इस कस्टम स्पिनर वर्ग का प्रयोग करें ...

/** Spinner extension that calls onItemSelected even when the selection is the same as its previous value */ 
public class NDSpinner extends Spinner { 

    public NDSpinner(Context context) 
    { super(context); } 

    public NDSpinner(Context context, AttributeSet attrs) 
    { super(context, attrs); } 

    public NDSpinner(Context context, AttributeSet attrs, int defStyle) 
    { super(context, attrs, defStyle); } 

    @Override public void 
    setSelection(int position, boolean animate) 
    { 
    boolean sameSelected = position == getSelectedItemPosition(); 
    super.setSelection(position, animate); 
    if (sameSelected) { 
     // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now 
     getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId()); 
    } 
    } 

    @Override public void 
    setSelection(int position) 
    { 
    boolean sameSelected = position == getSelectedItemPosition(); 
    super.setSelection(position); 
    if (sameSelected) { 
     // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now 
     getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId()); 
    } 
    } 
} 
संबंधित मुद्दे