菜单在Android开发中必不可少,可是要怎么实现各种菜单呢?是不是很头疼呢?下面我就来介绍一下:

1. 选项菜单和子菜单的实现

选项菜单:最常规的菜单,Android中把它叫做option menu。选项菜单最多只能显示6个菜单项,超过6个时,第6个菜单项会被系统替换为一个叫“更多”的子菜单,原来显示不下的菜单项都作为“更多”菜单的子菜单项。

子菜单:Android中点击了子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。

步骤1:生成子菜单和选项菜单创建一个名为“myMenu”的Android Project。在MyMenuActivity类中,右单击Source→Override/Implement Methods。通过onCreateOptionsMenu()方法来生成选项菜单,代码如下:

    public boolean onCreateOptionsMenu(Menu menu) {   //生成选项菜单        // TODO Auto-generated method stub        super.onCreateOptionsMenu(menu);    // 调用父类方法来加入系统菜单        menu.add(1,1,1,"分享");             menu.add(1,2,2,"剪切");             //添加菜单项        menu.add(1,3,3,"删除");        menu.add(1,4,4,"编辑");        menu.add(1,5,5,"旋转");        menu.add(1,6,6,"标注");        menu.add(1,7,7,"详细信息");       //menu.add(int groupId, int itemId, int order, CharSequence title);        menu.add(1,8,8,"设为壁纸");        SubMenu submenu=menu.addSubMenu("系统设置");//可以带子菜单的菜单项        submenu.add(1,1,1,"显示设置");        submenu.add(1,2,2,"高级设置");        submenu.add(1,3,3,"网络设置");        submenu.add(1,4,4,"安全设置");        return true;    }

步骤2:响应菜单onOptionsItemSelected(MenuItem)每当有菜单项被点击时,android就会调用该方法,并传入被点击菜单项。

public boolean onOptionsItemSelected(MenuItem item) {   //响应菜单        // TODO Auto-generated method stub        b1.setText(item.getTitle());   //点击了哪个菜单项,b1就显示哪个菜单项的title,        return true;    }

2. 上下文菜单的实现

上下文菜单:Android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单。

步骤1:注册上下文菜单

public class MyMenuActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        b1=(Button) findViewById(R.id.b1);   //注册按钮b1        this.registerForContextMenu(b1);   //注册上下文菜单    }    Button b1;

步骤2:生成上下文菜单

public void onCreateContextMenu(ContextMenu menu, View v,    //生成上下文菜单            ContextMenuInfo menuInfo) {        // TODO Auto-generated method stub        if(v.getId()==R.id.b1)        {            menu.clear();     //清空上下文菜单(一些默认的菜单项)            menu.setHeaderTitle("文件操作");   //上下文菜单的标题            menu.add(0, 1, Menu.NONE, "发送");     //添加上下文菜单项            menu.add(0, 2, Menu.NONE, "标记为重要");            menu.add(0, 3, Menu.NONE, "重命名");            menu.add(0, 4, Menu.NONE, "删除");        }    }

步骤2:响应上下文菜单

    public boolean onContextItemSelected(MenuItem item) {  //响应上下文菜单        // TODO Auto-generated method stub        t1.setText(item.getTitle());        return true;    }

感悟

在做子菜单的时候,我起初在试图在默认的Menu中添加子菜单。当然我失败了,因为只有SubMenu子菜单类的对象才可以包含子菜单。还有在子菜单的响应时由于粗心把onOptionsItemSelected(MenuItem)写错了,导致我一直不能实现。而在做上下文菜单的时候一定不要忘记在你要弹出上下文菜单的控件上注册上下文菜单。学习Android也有一段时间了,我发现它没有想象中的那么难,不管在做窗体跳转还是菜单或者其他内容的时候,只要掌握了它正确的步骤和方法,就一定可以做好的。不过也要细心才可以喔,有写的不对的地方亲们一定要指出来喔!


更多相关文章

  1. Android简单实现屏幕下方Tab菜单的方法
  2. 使用上下文菜单ContextMenu
  3. Android(安卓)自定义View修炼-打造完美的自定义侧滑菜单/侧滑Vie
  4. 简单的android选项卡Tab菜单TabHost(一)同一Activity上实现
  5. 项目需求讨论-HyBrid模式需求改造
  6. 详解Android首选项框架的使用实例
  7. Android(安卓)monkey介绍
  8. Android利用BottomNavigationView默认底部导航去掉滑动隐藏效果
  9. 用Fiddler可以设置浏览器的UA 和 手动 --Chrome模拟手机浏览器(iO

随机推荐

  1. GreenDao开源ORM框架浅析
  2. android apk安装包修改了之后在安卓7.0系
  3. Android下写一个永远不会被KILL掉的进程/
  4. Android(安卓)Studio如何选择查看指定进
  5. Android(安卓)OpenGLES2.0(十四)——Obj格
  6. Android实现电量控制降低耗电
  7. Android中显示GIF动画的实现代码
  8. 【Android动态布局】之【ListView动态加
  9. Android和Linux的时间戳
  10. android sdk 下载和更新失败解决方案