Options Menu
创建选项菜单的步骤:
1、覆盖Activity 的onCreateOptionMenu(Menu menu)方法,当菜单第一次被打开时调用
2、调用Menu 的add( )方法添加菜单项(MenuItem),同时可以调用MenuItem 的setIcon( )方法来为菜单项设置图标
3、当菜单项(MenuItem)被选择时,覆盖Activity 的onOptionsItemSelected(MenuItem item)来响应事件
public class MainActivity extends Activity {
// 定义一些变量,后面直接拿来用
private static final int START_ITEM = Menu.FIRST;
private static final int OVER_ITEM = Menu.FIRST + 1;
private static final int SET_ITEM1 = Menu.FIRST + 2;
private static final int SET_ITEM2 = Menu.FIRST + 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 添加菜单项(组ID,菜单项ID,排序,标题)
menu.add(0, START_ITEM, 100, "开始");
menu.add(0, OVER_ITEM, 200, "结束");
// 添加子菜单
SubMenu sub1 = menu.addSubMenu("设置");
sub1.add(1, SET_ITEM1, 300, "设置声音");
sub1.add(1, SET_ITEM2, 400, "设置桌面");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case START_ITEM:
// 提示信息
Toast.makeText(this, "开始", Toast.LENGTH_SHORT).show();
break;
case OVER_ITEM:
// 提示信息
Toast.makeText(this, "结束", Toast.LENGTH_SHORT).show();
break;
case SET_ITEM1:
// 提示信息
Toast.makeText(this, "声音设置", Toast.LENGTH_SHORT).show();
break;
case SET_ITEM2:
// 提示信息
Toast.makeText(this, "设置桌面", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
Context Menu
顾名思义,与上下文(环境)有关。思想类似于Windows中的右键单击弹出的快捷菜单。操作时需要长时间按住某个东东不放。
创建上下文菜单的步骤:
1、覆盖Activity 的onCreateContextMenu(Menu menu)方法,调用Menu的add()方法添加菜单项(MenuItem)。
2、覆盖Activity 的onContextItemSelected(MenuItem iitem)来响应事件。
3、调用registerForContextMenu( )方法来为视图注册上下文菜单。
复制代码
public class MainActivity2 extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
// 获取BUTTON对象
btn1 = (Button) findViewById(R.id.button1);
//在button上注册上下文菜单
registerForContextMenu(btn1);
}
// 创建上下文菜单的事件方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.menu_main2, menu);
}
// 上下文菜单项触发事件
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.start:
Toast.makeText(this, "开始。。。", Toast.LENGTH_SHORT).show();
break;
case R.id.over:
Toast.makeText(this, "结束。。。", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return super.onContextItemSelected(item);
}
}
Popup Menu
弹出式菜单.
弹出菜单是停靠在一个View上的一个模式菜单。如果View对象下方有空间,那么弹出菜单将显示在停靠对象的下方,否则会显示在上方。这是非常有用的。
public class MainActivity3 extends Activity implements OnMenuItemClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
}
public void showPopupMenu(View v){
//创建弹出式菜单对象(最低版本11)
PopupMenu popup = new PopupMenu(this,v);
//获取菜单填充器
MenuInflater inflater = popup.getMenuInflater();
//填充菜单
inflater.inflate(R.menu.menu_main3, popup.getMenu());
//设置菜单项的单击事件
popup.setOnMenuItemClickListener(this);
popup.show();
}
//弹出式菜单的单击事件处理
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.copy:
Toast.makeText(this, "复制。。。", Toast.LENGTH_LONG).show();
break;
case R.id.del:
Toast.makeText(this, "删除。。。", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return false;
}
}
分享到:
相关推荐
首先,我们来看Android中的基本菜单类型——`OptionsMenu`,通常在屏幕顶部的三个点(汉堡菜单)中展开。创建一个`OptionsMenu`需要在`Activity`的`onCreateOptionsMenu()`方法中 inflate 一个XML布局文件,该文件...
在Android中,菜单分为选项菜单(OptionsMenu)和上下文菜单(ContextMenu)。选项菜单通常在屏幕顶部显示,当用户按下菜单键时出现;上下文菜单则在用户长按某对象时触发。"Day11_PopupMenu"和"Day11_ContextMenu01...
本文将深入探讨四个关键类型的菜单:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)以及弹出菜单(Popup Menu),并结合"NewMenuDemo"这个示例项目来阐述它们的设计与实现。 首先,我们来...
本文将详细讲解Android中的三种主要菜单类型:Options Menu(选项菜单)、Context Menu(上下文菜单)和PopupMenu(弹出式菜单),以及如何在实际项目中运用它们。 **Options Menu** Options Menu,也被称为主菜单...
- 主要有三种类型的Menu:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。 2. **创建Option Menu** - 在`res/menu`目录下创建XML文件来定义菜单项,每个菜单项是一个标签。 - ...
Android菜单主要有三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常显示在屏幕顶部,与设备的硬件菜单按钮或虚拟菜单按钮关联;上下文菜单在长按某项内容时...
菜单主要有三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。 **选项菜单**是Android应用中最常见的菜单形式,通常出现在屏幕的右上角,由三个水平线的图标表示。当用户...
首先,Android菜单主要有三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。每种菜单都有其特定的使用场景和创建方式。 1. 选项菜单: 选项菜单是应用主屏幕右上角的"三条...
在Android中,菜单不仅限于下拉菜单,还有其他形式,如Options Menu(选项菜单)和ContextMenu(上下文菜单)。这些菜单在不同的场景下有不同的用途,但基本的创建和处理逻辑与下拉菜单类似,都需要使用`Menu`和`...
`Menu`分为几种类型:主菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出窗口菜单(PopupMenu)。创建`Menu`的基本流程: 1. 在`Activity`中重写`onCreateOptionsMenu(Menu menu)`方法,这里可以使用`...
项目中可能包含多个XML文件,每个文件代表一个特定的菜单层次,如选项菜单(OptionsMenu)、上下文菜单(ContextMenu)或弹出式菜单(PopupMenu)。 2. **菜单项的定义**:XML文件中的`<item>`元素用于定义菜单项,...
- 主要有三种类型的菜单:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。 2. **创建菜单资源**: - 在res/menu目录下创建XML文件来定义菜单项,例如menu.xml。每个菜单项是元素...
在Android中,菜单分为三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部的三道横线(汉堡菜单)或动作栏(ActionBar)中显示,而上下文菜单则在...
另外,还可以添加动画效果,如滑动展开和收缩,这可以通过自定义`PopupMenu`或者`OptionsMenu`的显示和消失动画来实现。 5. **特殊情况处理**: 对于弹出式菜单(PopupMenu),可以在需要的时候动态创建并显示,...
在Android中,菜单主要分为三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部的Action Bar或Toolbar中显示,上下文菜单在长按某项内容时出现,而弹...
1. **Android菜单基础**:在Android中,菜单主要分为三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部显示,而上下文菜单在长按元素时出现,弹出式...
在Android中,菜单通常分为三种类型:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部的Action Bar中显示,上下文菜单则在长按操作时出现,而PopupMenus可以...
1. **选项菜单(OptionsMenu)**:这是最常见的菜单类型,通常在屏幕底部显示,或者在Android 3.0及以上版本中与ActionBar结合使用。当用户按下设备的"MENU"键或在ActionBar上点击汉堡图标时,它会弹出。`...