Android学习笔记--菜单
来源:互联网 发布:php积分商城源码 编辑:程序博客网 时间:2024/05/16 07:29
Android中菜单分为三类:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)
一。选项菜单
用户单击Menu键弹出的菜单即是选项菜单。
最多只能同时显示6个,超过六个第六个自动显示为更多
目录菜单是给用户提供交互接口的
创建选项菜单的步骤:
1.复写Activity的onCreateOptionsMenu(Menu menu)方法
2.调用Menu的add()方法添加菜单项(MenuItem),且可以调用setIcon()方法设置图标
3.复写onOptionItemSelected()来响应菜单项被选择事件
例:
private static final int ITEM1 = Menu.FIRST;private static final int ITEM2 = Menu.FIRST+1;public boolean onCreateOptionsMenu(Menu menu){ menu.add(0,ITEM1,0,"菜单项1"); menu.add(1,ITEM2,0,"菜单项2"); return super.onCreateOptionsMenu(menu);}public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case ITEM1: break; case ITEM2: break; }}
二。上下文菜单
用户长时间点击不放所弹出的菜单称为上下文菜单
创建步骤:
1.复写Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项
2.复写onContxtItemSelected()方法,响应菜单单击事件
3.调用registerForContextMenu()方法,为视图注册上下文菜单
例:
private static final int ITEM1 = Menu.FIRST;private static final int ITEM2 = Menu.FIRST+1;private static final int ITEM3 = Menu.FIRST+2;private TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.TextView); textView.setText("asfasdfasdfasdf"); registerForContextMenu(textView); }@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubmenu.add(0,ITEM1,0,"一");menu.add(0,ITEM2,0,"二");menu.add(0,ITEM3,0,"三");super.onCreateContextMenu(menu, v, menuInfo);}@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()){case ITEM1:break;case ITEM2:break;case ITEM3:break;}return super.onContextItemSelected(item);}
三。子菜单
子菜单就是将相同功能的分组进行多级显示的一种菜单。
步骤:
1.复写Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加子菜单项
2.调用SubMenu()的add()方法,添加子菜单(Sub Menu)
3.复写onContextItemSelected()方法,响应菜单点击事件
例:
private static final int ITEM1 = Menu.FIRST;private static final int ITEM2 = Menu.FIRST+1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu file = menu.addSubMenu("文件"); SubMenu edit = menu.addSubMenu("编辑"); file.add(0, ITEM1, 0, "新建"); file.add(0, ITEM2, 0, "打开"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case ITEM1: setTitle("新建文件!"); break; case ITEM2: setTitle("打开文件!"); break; } return super.onOptionsItemSelected(item); }
- Android学习笔记--菜单
- android菜单学习笔记
- Android 菜单学习笔记
- 【Android学习笔记】 菜单Menu
- Android学习笔记(34):Android菜单
- Android(OPhone) 学习笔记 - 菜单使用
- android学习笔记之三菜单
- android学习笔记之三菜单
- Android学习笔记--下拉菜单(Spinner)
- Android应用开发学习笔记之菜单
- Android学习笔记(八) 使用菜单
- 兄弟连云Android 学习笔记—菜单
- Android学习笔记之PopupMenu弹出菜单
- android 学习笔记 如何使用menu菜单
- Android学习笔记十九之Menu菜单
- Android学习笔记之菜单详解
- Android学习笔记十九之Menu菜单
- Android学习笔记(六):选项菜单,上下文菜单
- 数据挖掘-——Data Mining(3)
- 计算广告学体系
- 跟我一起写 Makefile
- time_t 与 tm结构
- ActiveMQ多个消费者进程,出现类似死锁阻塞 源于 .receive(1000)
- Android学习笔记--菜单
- test
- windows7下登录ubuntu的方法(二)
- 在Ubuntu上为Android系统编写Linux内核驱动程序
- Querying XML Files Using XPATH in ASP.NET
- iphone中单例的使用
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
- 凤舞 - 编译 客户端
- Querying XML Data Using XPATH Expression and the XML DOM