Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1736435
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 嵌入式

2012-03-25 21:23:32

移动平台同样有Menu,比如在桌面屏上点击menu按钮,会从底部弹出一个Menu:

同样,我们也可以为自己的Activity定制Menu,主要是覆写onCreateOptionMenu和onOptionsItemsSelected方法:


  1. public class LayoutActivity extends Activity {
  2.     @Override
  3.     protected void onCreate(Bundle savedInstanceState) {
  4.         super.onCreate(savedInstanceState);
  5.         setContentView(new CompoundView(this));
  6.     }

  7.     @Override
  8.     public boolean onCreateOptionsMenu(Menu menu) {
  9.         super.onCreateOptionsMenu(menu);
  10.         
  11.         int menuId = Menu.FIRST;
  12.         menu.add(0, menuId++, Menu.NONE, "Normal");
  13.         menu.add(0, menuId++, Menu.NONE, "Check box").setCheckable(true);
  14.         int group = 1;
  15.         menu.add(group, menuId++, Menu.NONE, "Radio button one");
  16.         menu.add(group, menuId++, Menu.NONE, "Radio button two");
  17.         menu.add(group, menuId++, Menu.NONE, "Radio button three").setChecked(true);
  18.         menu.setGroupCheckable(group, true, true);
  19.         return true;
  20.     }

  21.     @Override
  22.     public boolean onOptionsItemSelected(MenuItem item) {
  23.         Toast.makeText(this, item.toString(), Toast.LENGTH_LONG).show();
  24.         return true;
  25.     }
  26. }

当按键盘上的Menu键时,Menu从下方弹出:

发现check box和radio button和普通的menu item没什么区别。尝试着加入更多的menu item:

发现菜单里多了一个“More“的按钮。点开的话可以显示其余未显示的menu:


除了“options menu“外,还有一种“context menu”,当用户长按方向键的中心键时会弹出。你可以试试调用registerForContextMenu和覆写onCreateContextMenu与onContextMenuItemSelected方法来定制它:


  1. public class LayoutActivity extends Activity {
  2.     @Override
  3.     protected void onCreate(Bundle savedInstanceState) {
  4.         super.onCreate(savedInstanceState);
  5.         CompoundView cv = new CompoundView(this);
  6.         setContentView(cv);
  7.         // register for the text view's context menu
  8.         registerForContextMenu(cv.ev);
  9.     }

  10.     @Override
  11.     public void onCreateContextMenu(ContextMenu menu, View v,
  12.             ContextMenuInfo menuInfo) {
  13.         super.onCreateContextMenu(menu, v, menuInfo);
  14.         int menuId = Menu.FIRST;
  15.         menu.add(0, menuId++, Menu.NONE, "Normal");
  16.     }
  17. }

在layout activity程序运行时,长按方向盘的中心键,显示context menu,可以看到自定义的item:


阅读(1109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~