android spinner fire event when same item selection is made

前端 未结 5 1511
迷失自我
迷失自我 2020-12-10 12:25

I want to fire a event when the same item is selected in spinner. Method

@Override
    public void onItemSelected(AdapterView parent, View arg1, int         


        
5条回答
  •  失恋的感觉
    2020-12-10 12:50

    Hopefully this help. I tried and it works

    /** 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());
            }
          }
        }
    

提交回复
热议问题