Switch - case表达式必须是常量表达式

时间:2013-02-13 16:35:24

标签: android actionbarsherlock

我正在使用ActionBarSherlock,然后onOptionsItemSelected在单击特定菜单项时启动新活动。在添加ABS之前,代码工作正常,现在我在case expressions must be constant expressions上收到case错误。

@Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
    {
        switch (item.getItemId()) {
        case R.id.about: //error
            startActivity(new Intent(this, AboutActivity.class));
            break;
        case R.id.feedback: //error
            //launch activity
            break;

        default:
            break;
        return super.onOptionsItemSelected(item);
    }

在添加ActionBarSherlock之前,相同的代码工作正常。

4 个答案:

答案 0 :(得分:15)

我已将switch/case语句替换为if/else。您只需点击switch,然后按CTRL+1,如果您在Eclipse中。

答案 1 :(得分:12)

作为答案发布,Sam建议:

如果您在库中,则必须将所有switch / case语句从ADT版本14更改为if / else块。

见:

tools.android.com/tips/non-constant-fields

答案 2 :(得分:1)

要从switch / case语句切换到if / for,只需使用 alt + 输入在android studio中。

答案 3 :(得分:-1)

切换案例缺少结束"}"。

相关问题