私の問題は、現在 4 つのタブを持つ TabActivity を持っていることです。最初のタブは、ユーザーが一部のデータを変更できる特別な詳細タブです。
問題は、Activity に OptionsMenu を追加すると、OptionsMenu がすべてのタブに表示されることです。onCreateOptionsMenuで現在のmTabHost.getCurrentTabTag()を確認しようとしましたが、何も変わりませんでした。それで、それを行う方法は?
(次のコードでは、すべてのタブに OptionsMenu が引き続き表示されます)
public boolean onCreateOptionsMenu(Menu menu) {
if(mTabHost.getCurrentTabTag()==getString(R.string.tab_details)) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, EDIT_ID, 0, R.string.menu_edit).setIcon(R.drawable.edit);
return result;
}
return true;
}
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case EDIT_ID: {
Toast.makeText(this, "o.O", Toast.LENGTH_LONG).show();
}
}
return super.onMenuItemSelected(featureId, item);
}