Android菜单学习

来源:互联网 发布:百度地图js touchend 编辑:程序博客网 时间:2024/06/01 07:47
Android菜单主要分为选项菜单,上下文菜单和子菜单三种。
其中选项菜单和子菜单都是通过按菜单键生成的。
而上下文菜单是通过长按某个控件出现的。
下面分别介绍三种菜单键的实现:


选项菜单:

/*选项菜单 初始化函数*/@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.//getMenuInflater().inflate(R.menu.main, menu);menu.add(0, 1, 0, "1111");menu.add(0, 2, 0, "!!!");return true;}/*选项菜单 处理函数*/@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stub//return super.onOptionsItemSelected(item);int itemid = item.getItemId();switch(itemid){case 1:System.out.println("11111");break;case 2:System.out.println("22222");break;}return true;}


上下文菜单:

这就是Android添加小控件等时,长按桌面背景的后出现上下文菜单的实现。

这个实现必须要调用registerForContextMenu()方法传入一个view,这个view可以是一个按钮,也可以是一个布局。

/*上下文菜单的初始化函数,必须保证调用registerForContextMenu(view);才能生效*/@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stub//super.onCreateContextMenu(menu, v, menuInfo);menu.add(0, 3, 0, "rrrrrr");menu.add(0, 4, 0, "tttttt");}/*上下文菜单的处理函数*/@Overridepublic boolean onContextItemSelected(MenuItem item) {// TODO Auto-generated method stub//return super.onContextItemSelected(item);int itemid = item.getItemId();switch(itemid){case 3:System.out.println("3333");break;case 4:System.out.println("4444");break;}return true;}
注册方法:

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);View view =findViewById(R.id.layout);registerForContextMenu(view);}



子菜单:

/*选项菜单 初始化函数*/@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.//getMenuInflater().inflate(R.menu.main, menu);/*添加子菜单*/SubMenu s1 = menu.addSubMenu("文件");SubMenu s2 = menu.addSubMenu("菜单");s1.addSubMenu(0,1,0,"s11111");s1.addSubMenu(0,2,0,"s22222");return true;}/*选项菜单 处理函数*/@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stub//return super.onOptionsItemSelected(item);int itemid = item.getItemId();switch(itemid){case 1:System.out.println("11111");break;case 2:System.out.println("22222");break;}return true;}


0 0