温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 菜单详解

发布时间:2020-06-04 00:02:55 来源:网络 阅读:513 作者:无用大叔 栏目:移动开发

    Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu)


                                选项菜单

    可以通过两种办法增加选项菜单,一是在menu.xml中添加,该种方式参见Android 资源详解(二) 菜单资源,二是在.java中添加

1、覆盖Activity 的 onCreateOptionsMenu(Menu  menu)方法,当我们第一次打开菜单

时该方法被自动调用。

2、调用Menu的 add()方法添加菜单项(Menultem) ,可以调用Menultem的setIcon()

方法来为菜单项设置图标。.1

3、当菜单项(Menuitem)    被选择时,覆盖 Activity   的 onOptionsItemSelected()方法来 响应事件。

如下代码:

public class MainActivity extends Activity {
    private static final int menu1=Menu.FIRST;
    private static final int menu2=Menu.FIRST+1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0,menu1,0,"OK");
        menu.add(0,menu2,0,"CANCEL");
        return true;
    }
}

                            

                                上下文菜单

    当用户按住屏幕后,弹出的菜单成为上下文菜单。

    1、覆盖Activity  的 onCreateContextMenuO方法, 调用 Menu 的 add 方法添加菜单项

    2、覆盖onContextItemSelected(MenuIten item) 方法,响应菜单单击事件。

    3、调用 registerForContextMenu()方法,为视图注册上下文菜单。当长按视图时,会出现上下文菜单。代码如下:

public class MainActivity extends Activity {
private static final int menu1=Menu.FIRST;
private static final int menu2=Menu.FIRST+1;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView mytext=(TextView)this.findViewById(R.id.text1);
        this.registerForContextMenu(mytext);
    }
    public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuinfo) {
        menu.add(0,menu1,0,"OK");
        menu.add(0,menu2,0,"CANCEL");
    }
    public boolean onContextItemSelected(MenuItem item) {
        int id=item.getGroupId();
        switch(id) {
        case menu1: break;
        case menu2:break;
        }
    return super.onContextItemSelected(item);
    }
}

                            子菜单


    子菜单就是将相同功能的分组进行多级显示的一种菜单,比如,Windows的"文件"菜单中又有"新建"、"打开"、"关闭"等子菜单。Android系统中的子菜单也很多见,如" Settings"  (设置)菜单就有其子菜单。

    具体步骤如下:

    1、覆盖Activity 的 onCreateOptionsMenu()方法,调用 Menu 的 addSubMenu()方法添

        加子菜单项 (SubMenu)。

    2、调用SubMenu的add()方法,添加子菜单 (SubMenu) 。

    3、覆盖onContextItemSelected()方法,响应菜单单击事件。


代码如下:

public class MainActivity extends Activity {
    private static final int menu1=Menu.FIRST;
    private static final int menu2=Menu.FIRST+1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        SubMenu file=menu.addSubMenu("file");//添加子菜单
        SubMenu edit=menu.addSubMenu("edit");//添加子菜单
        file.add(0,menu1,0,"new");//为子菜单添加菜单选项
        file.add(0,menu2,0,"open");
        return true;
    }
}





向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI