操作栏中的下拉菜单会自动启动活动

时间:2015-11-12 06:23:15

标签: android android-actionbar

我想在操作栏上创建一个带有两个选项的下拉菜单。我在下面的代码中尝试了,但是动作栏的第一项是自动选择的,它会启动新的活动。

我没有收到任何错误或异常,请检查我的代码中有什么问题      String [] actions = new 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);        
    }    
 }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);        
    }
相关问题