如何为子菜单项实现onOptionsItemSelected?

时间:2013-08-12 07:59:05

标签: android menuitem submenu

我遇到过需要为项目的subMenu实现onOptionsItemSelected侦听器的情况。菜单xml文件如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_settings">

         <menu>

            <item android:id="@+id/create_new"
                  android:title="Create New" />
            <item android:id="@+id/open"
                  android:title="Open" />
        </menu>
    </item>


    <item android:id="@+id/new_game"
          android:title="New Game"
          android:showAsAction="always"/>


    <item android:id="@+id/help"
          android:title="Help" 
          android:showAsAction="always"/>


</menu>

由于我能够为项目实现选项监听器,因此我想知道如何为具有子菜单项的 action_settings 实现动作监听器。  请帮助我解决这个问题,但我无法找到确切的解决方案。

2 个答案:

答案 0 :(得分:2)

在我的情况下,当我为所选的每个项目实现一个开关时工作。没有必要实现一个监听器方法。

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case 1:

                break;

            case 2:

                break;

            case 3:

                break;  

            default:
                break;
            }       

        return true;
    }

答案 1 :(得分:0)

您可以覆盖onClick并执行此操作:

 @Override
    public void onClick(View v) {
        switch(v.getId()){

        case R.id.action_settings:
            ....
            break;
          }
   }