3

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

@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

4 回答 4

15

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

于 2013-02-13T16:54:41.723 回答
12

按照 Sam 的建议作为答案发布:

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

看:

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

于 2013-02-13T16:55:08.020 回答
1

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

于 2017-05-24T08:06:19.180 回答
-2

开关盒缺少关闭“}”。

于 2015-07-12T05:38:50.623 回答