如何添加选项菜单项?

时间:2014-01-05 10:36:55

标签: android

我是android的新手,当我按下按钮时,我正在做一个改变背景颜色的应用程序。我已经这样做但现在我想添加一个菜单项,它将启动带或不带按钮的模式。

我试图这样做,但我不知道我是否做得好。

  @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item){
        switch(item.getItemId()) {
        case R.id.action_settings:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Hidden").
            setPositiveButton("OK", null).
            create().
            show();
            return true;
        default:
            return super.onMenuItemSelected(featureId, item);
        }
    }

和XML

 <menu>
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="1"
            android:showAsAction="never"
            android:title="Hidden"/>

        <item
            android:id="@+id/action_settings"
            android:orderInCategory="2"
            android:showAsAction="never"
            android:title="Visible"/>
        <item
            android:id="@+id/action_exit"
            android:orderInCategory="3"
            android:showAsAction="never"
            android:title="Cancel"/>
    </menu>

1 个答案:

答案 0 :(得分:2)

首先编辑菜单项ID:从android:id="@+id/action_settings"android:id="@+id/action_hidden";
android:id="@+id/action_settings"android:id="@+id/action_visible";
android:id="@+id/action_exit"android:id="@+id/action_cancel";
XML文件:

    <menu>
        <item
            android:id="@+id/action_hidden"
            android:title="Hidden"/>    
        <item
            android:id="@+id/action_visible"
            android:title="Visible"/>
        <item
            android:id="@+id/action_cancel"
            android:title="Cancel"/>
    </menu>

然后使用:

         @Override
         public boolean onCreateOptionsMenu(Menu menu) {
           // Inflate the menu; this adds items to the action bar if it is present.
           MenuInflater menuInflater = getMenuInflater();
           getMenuInflater().inflate(R.menu.YOUR_ACTIVITY!!!!, menu);
           return true;
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item)
        {    
            switch (item.getItemId())
            {
            case R.id.action_hidden:
                //code for action_hidden
                return true;

            case R.id.action_visible:
                //code for action_visible
                return true;

            case R.id.menu_cancel:
                //code for menu_cancel   
                return true;

            default:
                return super.onOptionsItemSelected(item);
            }
        }