1

アクション バーに項目を追加していますが、アクティビティが最初に読み込まれたときに、その項目がアクション バーにのみ存在する場所は正しいです。次に、別のアクティビティに移動し、Intentそのメニュー項目を介して戻ってくると、複製されます。アクションバーには引き続き表示されますが、メニューにも表示されます。

これは、あるアクティビティから別のアクティビティに移動する私のコードです。これは、追加画面からホーム画面に来ています。ホーム画面に移動すると、メニューとアクション バーの両方に [アクション バーの追加] 項目が表示されます。ホームが最初に読み込まれると、本来のようにアクション バーにのみ表示されます。

Intent intent = new Intent(Add.this, Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

これがホームアクティビティのメニューインフレータです

public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.gas_menu, menu);
    return true;
}

このアクティビティはタブアクティビティを拡張しており、リロードされない原因となっている可能性があります。クラス拡張アクティビティに対して小さなテストを行いましたが、正常に動作しているようです。タブアクティビティは廃止されたので、おそらく置き換える必要があります。

4

1 に答える 1

0

常に true を返すのではなく、必ず super.onCreateOptionsMenu(menu) を呼び出してください。このコードを試してみましたが、うまくいきました。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    final MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.your_menu_file, menu);
    return super.onCreateOptionsMenu(menu);
}
于 2013-08-16T16:09:16.410 に答える