2016-03-16 40 views

回答

0

另一個可用選項是使用傳遞給OnItemSelectedListener的值。

本例中使用的位置,而無需使用getSelectedItemPosition(): -

// Set Spinner's onItemSelectedListener ie to act when an aisle is selected. 
// Note!!! run on post, as a runnable, so that initial onItemSelected event (at initialisation) is not captured. 
current_aislelistspinner.post(new Runnable() { 
    @Override 
    public void run() { 
     current_aislelistspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       currentaislelistcursor.moveToPosition(position); 
       currentaisleid = currentaislelistcursor.getLong(ShopperDBHelper.AISLES_COLUMN_ID_INDEX); 
       Log.d(Constants.LOG,"ACTIVITY: " + THIS_ACTIVITY + " SECTION: Running - AISLELIST OnItemSelectedLIstener" + 
         "- AILSEID Extracted=" + currentaisleid); 
       currentproductsperaisleecursor = shopperdb.getProductsperAisle(currentaisleid); 
       current_productsperaislecursoradapter.swapCursor(currentproductsperaisleecursor); 
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
      } 
     }); 
    } 
}); 

注意!因爲上面是可以在微調器的後置事件中運行的,所以在微調器創建時它不會觸發。