选项菜单用于特定选项卡的TabActivity

时间:2010-08-04 10:36:12

标签: android menu tabactivity

我的问题是,我有一个TabActivity,现在有4个Tabs。第一个Tab是一个特殊的Details-Tab,用户可以在其中修改一些数据。

问题是,如果我为Activity添加了OptionsMenu,那么OptionsMenu会出现在每个Tab上。 我试图检查 onCreateOptionsMenu 中的当前 mTab​​Host.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);
 } 

1 个答案:

答案 0 :(得分:0)

我看到你正在将字符串(实际上是标签)与==进行比较,通常,用.equals()方法做得更好。也许它会解决你的问题 要动态更新选项菜单(来自文档):

  

如果要更改选项   菜单每次打开时,您都必须   覆盖onPrepareOptionsMenu()