2013-04-15 3 views
0

У меня есть поворотная навигация по моей панели действий и для этого есть прослушиватель навигации. Когда действие создано, слушатель (ниже) берет на себя элемент-заполнитель по умолчанию, который означает, что при создании 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; 
    } 
    }; 

Update: Думает, я решил его с этим, я объявил булев флаг, изменил его к ложному 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() ложь и проверить, что в вашем слушателе затем установить его на истинный после первого раза, когда он устанавливает, поэтому он не будет работать код Intent, когда вы его запускаете. В зависимости от того, что вам нужно, вы можете поместить его в onResume(), чтобы он не запускался, если вы вернетесь в это Activity