2012-08-01 74 views
1

我有一个应用程序,设计与隐藏在所有意图的标题栏。我想利用Activity.openOptionsMenu()从一个按钮。它在2.2上工作正常,但是当我在蜂窝上运行应用程序时,调用openOptionsMenu()似乎不起作用。有另一种方法吗?openOptionsMenu()跨Android版本

点击这里的代码,如果它很重要。这是我的mapview活动,扩展MapView:

OnClickListener ocl = new OnClickListener() 
    { 

    @Override 
    public void onClick (View v) 
    { 
     switch (v.getId()) 
     { 
      case R.id.b_options: 
            Log.d (TAG, "options clicked"); 
            mymapview.this.openOptionsMenu(); 
      break; 

      case R.id.b_prev: 
            Log.d (TAG, "prev clicked"); 
      break; 
     } 

    } 
    }; 
+0

我们发现openOptionsMenu在一些设备(galaxy nexus,nexus s,emulator)上工作正常,但对其他设备没有任何作用。这是非常蹩脚的。 – cidermonkey 2012-08-20 19:22:47

+0

我在这里找到了最终的工作解决方案:http://stackoverflow.com/a/17903128/784982 – Lisitso 2013-09-14 10:12:54

回答

1

你的应用程序中是否有ActionBar?我相信openOptionsMenu()仅适用于Honeycomb中的伴随ActionBar。 ICS不会返回菜单按钮,但不再需要用于openOptionsMenu()的ActionBar。

+0

如果我为蜂窝添加ActionBar,它会在Android 2.2上运行吗?似乎不太可能。 – wufoo 2012-08-01 18:02:16

+0

不,它不会默认。你需要使用[ActionBarSherlock](http://actionbarsherlock.com/)。 – Tushar 2012-08-01 18:04:10

+0

很奇怪。今天openOptionsMenu()神秘地工作,如我所料。我可以将其归因于的唯一一件事就是重新启动平板电脑。 – wufoo 2012-08-02 20:27:30