Android子菜单上下文菜单和弹出提示框
1 子菜单SubMenu
我们可以通过addSubMenu(int groupId(组号), int itemId(Id号), int order(排序号), int titleRes(标题))来创建和响应子菜单。
@Override
public boolean onCreateOptionsMenu(Menu menu) {//子菜单
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
int base = Menu.FIRST;
// 一个menu可以有多个子菜单
SubMenu subMenu = menu.addSubMenu(base, base+1, Menu.NONE, "系统设置");
// 一个子菜单可以有多个菜单项
MenuItem menuitem1 = subMenu.add(base, base+1, base+1, "显示设置");
subMenu.add(base, base+2, base+2, "网络设置");
subMenu.add(base, base+3, base+3, "高级设置");
subMenu.add(base, base+4, base+4, "安全设置"); // 子菜单项不支持显示图标
menuitem1.setIcon(R.drawable.displaysettings);
//但是子菜单本身是支持图标的
subMenu.setIcon(R.drawable.settings);
return true;
}
2 上下文菜单
2.1 注册触发按钮
Button btn2=(Button) findViewById(R.id.b2); // 注册弹出菜单按钮 长按时弹出不是点击
this.registerForContextMenu(btn2);//调用
2.2注册上下文菜单
@Override
//ContextMenu 上下文菜单 弹出菜单
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)
{
//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, "删除");
}
3 提示框的弹出
3.1 注册提示框
@Override//点击按钮弹出提示框
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new Builder(MenufActivity.this);//builder 类中类
builder.setMessage("确认退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.create().show();
}
4 总结
子菜单在显示系统设置的之前我们要点击menu键,onCreateContextMenu会在用户每一次长按View时被调用,而且View必须已经注册了上下文菜单。