zoukankan      html  css  js  c++  java
  • Android 建立Menu选单&&onOptionsItemSelected (转)

    /** 当Menu有命令被选择时,会调用此方法 */ 

        @Override 

        public boolean onOptionsItemSelected(MenuItem item) {  

            switch (item.getItemId()) {  

            case ADD_ID:  

                setTitle("添加");// 将title设置为"添加"  

                break;  

            case DELETE_ID:  

                setTitle("删除");// 将title设置为"删除"  

                break;  

            case EXIT_ID:  

                finish();// 退出程序  

                break;  

            }  

            // 返回false允许正常的菜单处理资源,若返回true,则直接在此毁灭它  

            return super.onOptionsItemSelected(item);  

        }  

    package com.misoo;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.Menu;

    import android.view.MenuItem;

    public class ex01 extends Activity {

             /** 给定各菜单项对应ID值,以区别之,能保证这些值不同就行了 */

             public static final int ADD_ID = Menu.FIRST;// 添加命令对应ID值

             public static final int DELETE_ID = Menu.FIRST + 1;// 删除命令对应ID值

             public static final int EXIT_ID = Menu.FIRST + 2;// 退出命令对应ID值

             /** 当activity首次被创建时被调用 */

             @Override

             public void onCreate(Bundle savedInstanceState) {

                       super.onCreate(savedInstanceState);

                       setContentView(R.layout.main);// 根据main.xml的布局来显示

             }

             /** 只有当Menu菜单首次被显示时会调用此方法 */

             @Override

             public boolean onCreateOptionsMenu(Menu menu) {

                       boolean b = super.onCreateOptionsMenu(menu);

                       /**

                        * menu.add(int groupId, int itemId, int order, CharSequence title)

                        * groupId为组ID,这里用不到,所以设置成Menu.NONE

                        * itemId为项ID,当命令被点击时,要区别点击的命令,所以设置以不同的ID

                        * order为排列次序,值越小排的越前(不能为负数),这里按添加顺序排,所以也设置成Menu.NONE

                        * title为要显示的命令名称,这里是根据res/values/strings.xml的name名称去取相应的value

                        * 估计这样处理是为了日后若要更改这些值,就直接在XML里修改,可以不必改动代码

                        */

                       menu.add(Menu.NONE, ADD_ID, Menu.NONE, R.string.menu_add);

                       menu.add(Menu.NONE, DELETE_ID, Menu.NONE, R.string.menu_delete);

                       menu.add(Menu.NONE, EXIT_ID, Menu.NONE, R.string.menu_exit);

                       return b;// 如果返回值不为true,则Menu菜单将不会显示

             }

             /** 当每次Menu显示时,会调用此方法 此例中没用到*/

             @Override

             public boolean onPrepareOptionsMenu(Menu menu) {

                       return super.onPrepareOptionsMenu(menu);

             }

             /** 当每次Menu关闭时,会调用此方法 此例中没用到*/

             @Override

             public void onOptionsMenuClosed(Menu menu) {

                       super.onOptionsMenuClosed(menu);

             }

             /** 当Menu有命令被选择时,会调用此方法 */

             @Override

             public boolean onOptionsItemSelected(MenuItem item) {

                       switch (item.getItemId()) {

                       case ADD_ID:

                                setTitle("添加");// 将title设置为"添加"

                                break;

                       case DELETE_ID:

                                setTitle("删除");// 将title设置为"删除"

                                break;

                       case EXIT_ID:

                                finish();// 退出程序

                                break;

                       }

                       // 返回false允许正常的菜单处理资源,若返回true,则直接在此毁灭它

                       return super.onOptionsItemSelected(item);

             }

    }

     下边为res/values/string.xml

    view plaincopy to clipboardprint?

    <?xml version="1.0" encoding="utf-8"?> 

    <resources> 

        <string name="hello">Hello World, ex01!</string> 

        <string name="app_name">ex01</string> 

        <string name="menu_add">Add Item</string> 

        <string name="menu_delete">Del Item</string> 

        <string name="menu_exit">Exit</string> 

    </resources>   

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kf156/archive/2009/08/12/4436594.aspx

    menu.add的方法中的参数:


    第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。可以用到的方法有:
    removeGroup(id)
    setGroupCheckable(id, checkable, exclusive)
    setGroupEnabled(id,boolean enabled)
    setGroupVisible(id,visible)
    个人认为,当你需要在不同场合下显示不同的menu的时候,合理使用这个参数将更为有效的处理菜单的显示。否则一般情况下都归为一组。
    第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个Menu中的选项。在后面使用菜单的时候,就是靠这个item ID来判断,你选中的是哪个选项。
    第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的顺序来显示。
    第四个String类型的title参数,表示选项中显示的文字。
    再看看setIcon方法,就是为菜单添加图标显示,使用用资源文件。

    转自: http://blog.csdn.net/a_moon721/article/details/5880260

  • 相关阅读:
    jQuery EasyUI API 中文文档 可调整尺寸
    jQuery EasyUI API 中文文档 链接按钮(LinkButton)
    jQuery EasyUI API 中文文档 手风琴(Accordion)
    jQuery EasyUI API 中文文档 表单(Form)
    jQuery EasyUI API 中文文档 组合(Combo)
    jQuery EasyUI API 中文文档 布局(Layout)
    jQuery EasyUI API 中文文档 拆分按钮(SplitButton)
    jQuery EasyUI API 中文文档 菜单按钮(MenuButton)
    jQuery EasyUI API 中文文档 搜索框
    jQuery EasyUI API 中文文档 验证框(ValidateBox)
  • 原文地址:https://www.cnblogs.com/YangBinChina/p/3706816.html
Copyright © 2011-2022 走看看