2015-07-19 70 views
1

有沒有一種方法可以從微調器上的ItemSelected事件中獲取以前選擇的項目?我的第一個想法是響應OnItemClickedEvent,但該方法不支持spinners。獲取先前選定的項目 - 微調OnItemSelectedListener事件

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
     { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
       { 

       MyItem current = (MyItem) parent.getItemAtPosition(position); 
       //MyItem previous = (MyItem) parent.getPrevious ... how 
       } 

       @Override 
       public void onNothingSelected(AdapterView<?> parent) 
       { 
       //do nothing 
       } 
      }); 

我知道我可以緩存以前的值,但它似乎是一種常見的操作,應該有一種方法。

回答

1

使用變量來跟蹤上一個項目。它很可能是活動的成員。

MyItem previous, current; 
    ... 

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
    { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
      { 
       previous = current 
       current = (MyItem) parent.getItemAtPosition(position); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) 
      { 
      //do nothing 
      } 
     }); 
相關問題