2015-11-12 44 views
0

我想在两个选项的操作栏上创建一个下拉菜单。我试着像下面的代码一样,但操作栏的第一项是自动选择的,它开始新的活动。在操作栏中的下拉菜单自动开始活动

我没有得到任何错误或异常请检查什么是错在我的代码 的String [] =行动新的String [] { “家”, “更新IMEI” };

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, actions); 

     /** Enabling dropdown list navigation for the action bar */ 
     getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

     /** Defining Navigation listener */ 
     ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() { 

      @Override 
      public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
       //Toast.makeText(getBaseContext(), "You selected : " + actions[itemPosition] , Toast.LENGTH_SHORT).show(); 
       switch(itemPosition) { 

       case 0: 

        break; 

       case 1: 
        Intent i = new Intent(UserDetail.this, MainActivity.class); 
        startActivity(i); 
        break; 
       case 2: 
        Intent ii = new Intent(UserDetail.this, Update_imei.class); 
        startActivity(ii); 
        break; 

       default: 
        break; 
       } 
        return false; 
      } 
     }; 

     /** Setting dropdown items and item navigation listener for the actionbar */ 
     getActionBar().setListNavigationCallbacks(adapter, navigationListener);   
    }  
} 

回答

0

希望它帮助你

String[] actions = new String[] { 
      "Select Option", 
      "Home", 
      "Update " 
     }; 
    /** Enabling dropdown list navigation for the action bar */ 
     getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

     /** Defining Navigation listener */ 
     ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() { 

      @Override 
      public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
       //Toast.makeText(getBaseContext(), "You selected : " + actions[itemPosition] , Toast.LENGTH_SHORT).show(); 
       switch(itemPosition) { 

      case 0: 

       break; 

      case 1: 
       Intent i = new Intent(UserDetail.this, MainActivity.class); 
       startActivity(i); 
       break; 
      case 2: 
       Intent ii = new Intent(UserDetail.this, Update.class); 
       startActivity(ii); 
       break; 

      default: 
       break; 
      } 
       return false; 
      } 
     }; 

     /** Setting dropdown items and item navigation listener for the actionbar */ 
     getActionBar().setListNavigationCallbacks(adapter, navigationListener);   
    } 
+0

问题不来,但情况1不工作,只有情况2工作 – Andrain

+0

你可以请显示你的完整源代码 – PLP

0

问题在于你正在检查位置变量。当您将侦听器添加到菜单中时,Android会检查位置为{0,1}的项目,并使用空ID来将方法加载到内存中。您可以通过检查项目标识而不是位置来绕过此问题。

+0

我可以给你更详细的例子,如果你告诉我你如何你的代码中创建您的菜单。 –