2013-04-15 92 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