2013-04-15 124 views
0

我在我的操作欄上有微調導航,並有一個導航監聽器。 當活動被創建時,監聽器(下面)會選擇默認的微調項目,這意味着情況0在創建時運行,打開另一個活動。 如何在創建活動時停止註冊導航更改?Android操作欄導航

ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() { 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
      switch(itemPosition) { 
      case 0: 

       Intent i = new Intent(Main.this, Example.class); 
       startActivity(i); 
       break; 
      case 1: 
       Intent i2 = new Intent(Main.this, Example.class); 
       startActivity(i2); 
       break; 
      case 2: 
       Intent i3 = new Intent(Main.this, Example.class); 
       startActivity(i3); 
       break; 
      case 3: 
       Intent i4 = new Intent(Main.this, Example.class); 
       startActivity(i4); 
       break; 
      } 
     return false; 
    } 
    }; 

更新: 我認爲這個解決它,我宣佈一個布爾標誌,它更改爲false OnCreate中。

ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() { 
    public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
     switch(itemPosition) { 
     case 0: 
      if(flag == true) { 
       if(Main.class == Main.class) { 

       } else { 
      Intent i = new Intent(Main.this, Main.class); 
      startActivity(i); 
       } 
      } 
      if(flag == false) { 
       flag = true; 
      } 
      break; 
     case 1: 
      Intent i2 = new Intent(Main.this, Example.class); 
      startActivity(i2); 
      break; 
     case 2: 
      Intent i3 = new Intent(Main.this, Example.class); 
      startActivity(i3); 
      break; 
     case 3: 
      Intent i4 = new Intent(Main.this, Example.class); 
      startActivity(i4); 
      break; 
     } 
     return false; 
    } 
    }; 

回答

0

有可能是一個更簡單的方法,但你可以在第一時間之後把boolean標誌onCreate()爲false,並檢查在你的聽衆,然後將其設置爲true,當它建立了,所以它不會跑當你第一次運行它時,代碼是Intent。根據您的需要,您可能需要將其放入onResume(),以便在您回到此Activity