2014-04-10 36 views
0

我在我的Activity ActionBar上實現NAVIGATION_MODE_LIST。我的問題是,當我使用setListNavigationCallbacks()在ActionBar上設置OnNavigationListener時,將執行 偵聽器的代碼。OnNavigationListener調用

mActionBar.setListNavigationCallbacks(spinnerAdapter, 
      new ActionBar.OnNavigationListener() { 
       @Override 
       public boolean onNavigationItemSelected(int itemPosition, 
         long itemId) { 

        ... 

       } 
      } 
    ); 

我認爲這是正確的,因爲該系統使該監聽器來選擇我的適配器的第一個項目一個電話,但我想只執行這個代碼,當用戶在列表中選擇,而不是一個項目第一次。

我該如何做到這一點?

回答

1

如果您在創建活動時將lastPosition變量初始化爲0,則可以將此值與onNavigationItemSelected方法中的itemPosition進行比較。如果值不同,則用戶做出了新的選擇,如果它們相同,則用戶選擇相同的項目(或者這是來自正在初始化的列表的呼叫)。