在android studio中单击操作栏菜单中的项目时跳转到另一个活动

Posted

技术标签:

【中文标题】在android studio中单击操作栏菜单中的项目时跳转到另一个活动【英文标题】:Jump to another activity when clicking a item in menu of actionbar in android studio 【发布时间】:2016-05-16 04:18:48 【问题描述】:

这是菜单中选择项的代码,当用户点击注销时,activity跳转到login_activity,当用户点击account时,activity跳转到account_activity。

@Override
public boolean onOptionsItemSelected(MenuItem item) 
    switch (item.getItemId())
        case R.id.logout_id:
            Intent login = new Intent(MainpanelActivity.this, LoginActivity.class);
            login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(login);
        case R.id.account_id:
            Intent account =new Intent(MainpanelActivity.this,AccountActivity.class);
            startActivity(account);
            default:
                return super.onOptionsItemSelected(item);
    

但是,在测试过程中,无论我点击什么,活动总是跳转到帐户活动。

如果我切换开关盒的顺序

@Override
public boolean onOptionsItemSelected(MenuItem item) 
    switch (item.getItemId())
        case R.id.account_id:
            Intent account =new Intent(MainpanelActivity.this,AccountActivity.class);
            startActivity(account);
        case R.id.logout_id:
            Intent login = new Intent(MainpanelActivity.this, LoginActivity.class);
            login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(login);

            default:
                return super.onOptionsItemSelected(item);
    

无论我点击什么,活动总是跳转到 login_activity。有人知道为什么吗?

【问题讨论】:

【参考方案1】:

您需要在每种情况下添加break;,如下所示。否则,您的代码将执行满足切换条件的 case 以及之后的每个 case,直到到达 break;switch 的结尾。

@Override
public boolean onOptionsItemSelected(MenuItem item) 
    switch (item.getItemId())
        case R.id.account_id:
            Intent account =new Intent(MainpanelActivity.this,AccountActivity.class);
            startActivity(account);
            break;
        case R.id.logout_id:
            Intent login = new Intent(MainpanelActivity.this, LoginActivity.class);
            login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(login);
            break;
        default:
            return super.onOptionsItemSelected(item);
    

【讨论】:

以上是关于在android studio中单击操作栏菜单中的项目时跳转到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

如何更改Android Studio的代码字体和颜色

第二章:Android Studio概述[学习Android Studio汉化教程]

如何在Android Studio的菜单应用程序标题栏中的项目之间添加行?

计算Android Studio中所有java类中的代码行

代号为 android 的操作栏

如何通过单击选项卡来更改操作栏菜单按钮