3

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

4 に答える 4

15

switch/caseステートメントを。に置き換えましたif/else。Eclipseを使用している場合は、クリックしてswitchからを押すだけです。CTRL+1

于 2013-02-13T16:54:41.723 に答える
12

サムがアドバイスしたように答えとして投稿されました:

ライブラリを使用している場合は、すべてのswitch/caseステートメントをADTバージョン14のif/elseブロックに変更する必要があります。

見る:

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

于 2013-02-13T16:55:08.020 に答える
1

switch/caseステートメントからif/に切り替えるには、 AndroidStudioで+をfor使用するだけです。altenter

于 2017-05-24T08:06:19.180 に答える
-2

「}」を閉じるスイッチケースがありません。

于 2015-07-12T05:38:50.623 に答える