0

次のようなアクションバーがあります。

アクションバー

以下を使用して、クリックされたボタンを確認しています。

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    switch (item.getItemId())
    {
            case R.id.view_all_trains:
                Intent i = new Intent(ToStationActivity.this, MapActivity.class);
                startActivityForResult(i, 0);
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);

    }
    return true;
}

どのボタン (戻るまたはピン) を押しても、前の画面に戻りますが、その理由はわかりません。なぜこれが起こるのかについての提案はありますか?

4

2 に答える 2

1

を使用して最後にケースを終了する必要がありますbreak;。そうしないと、制御フローは次のケースに続きます。

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    switch (item.getItemId())
    {
        case R.id.view_all_trains:
            Intent i = new Intent(ToStationActivity.this, MapActivity.class);
            startActivityForResult(i, 0);
            break;
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);

    }
    return true;
}
于 2014-03-04T13:52:22.507 に答える
1

breakスイッチの各ケースの最後にステートメントを入れてください!

于 2014-03-04T13:51:14.253 に答える