Android菜单主要分为选项菜单,上下文菜单和子菜单三种。
其中选项菜单和子菜单都是通过按菜单键生成的。
而上下文菜单是通过长按某个控件出现的。
下面分别介绍三种菜单键的实现:
其中选项菜单和子菜单都是通过按菜单键生成的。
而上下文菜单是通过长按某个控件出现的。
下面分别介绍三种菜单键的实现:
选项菜单:
/*选项菜单 初始化函数*/
@Override
public 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;
}
/*选项菜单 处理函数*/
@Override
public 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);才能生效*/
@Override
public 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");
}
/*上下文菜单的处理函数*/
@Override
public 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);
}
子菜单:
/*选项菜单 初始化函数*/
@Override
public 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;
}
/*选项菜单 处理函数*/
@Override
public 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;
}