我的问题是,我有一个TabActivity,现在有4个Tabs。第一个Tab是一个特殊的Details-Tab,用户可以在其中修改一些数据。
问题是,如果我为Activity添加了OptionsMenu,那么OptionsMenu会出现在每个Tab上。 我试图检查 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);
}
答案 0 :(得分:0)
我看到你正在将字符串(实际上是标签)与==进行比较,通常,用.equals()
方法做得更好。也许它会解决你的问题
要动态更新选项菜单(来自文档):
如果要更改选项 菜单每次打开时,您都必须 覆盖onPrepareOptionsMenu()