2013-04-15 17 views

Odpowiedz

8

Użyj tej niestandardowej klasy Spinner ...

/** 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()); 
    } 
    } 
} 
Powiązane problemy