0

我的问题是,我有一个 TabActivity,它现在有 4 个选项卡。第一个选项卡是一个特殊的详细信息选项卡,用户可以在其中修改一些数据。

问题是,如果我为 Activity 添加 OptionsMenu,则 OptionsMenu 会出现在每个选项卡上。我试图在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);
 } 
4

1 回答 1

0

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

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

于 2010-08-04T12:54:45.017 回答