【问题标题】:How to implement onOptionsItemSelected for Sub-Menu Items?如何为子菜单项实现 onOptionsItemSelected?
【发布时间】:2013-08-13 11:17:59
【问题描述】:

我遇到了需要为项目的子菜单实现 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 实现动作侦听器。 请帮助我解决这个问题,我已经搜索过了,但我无法找到确切的解决方案。

【问题讨论】:

    标签: android menuitem submenu


    【解决方案1】:

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

     @Override
        public void onClick(View v) {
            switch(v.getId()){
    
            case R.id.action_settings:
                ....
                break;
              }
       }
    

    【讨论】:

    • 我想知道如何为 action_settings 中的项目实现监听器...单击 action_setting 然后弹出一个显示项目的菜单后,我想知道如何在 action_settings 项目中为这些项目实现监听器。
    • 如果你不是我的,你能给我一个完整的代码吗?
    【解决方案2】:

    在我的情况下,当我为每个选定的项目实现一个开关时,它就起作用了。没有必要实现监听器方法。

        @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                case 1:
    
                    break;
    
                case 2:
    
                    break;
    
                case 3:
    
                    break;  
    
                default:
                    break;
                }       
    
            return true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2015-02-13
      • 2020-03-04
      相关资源
      最近更新 更多