Android里的菜单
16lz
2022-01-14
android菜单主要有三种,选项菜单(options Menu),上下文菜单(Content Menu),子菜单(Submenu)
options menu
当第一次调用选项菜单时,activity会调用onCreateOptionsMenu回调方法。
final int MENU_SAVE = Menu.FIRST;
final int MENU_DELETE = Menu.FIRST+1;
//android.view.Menu 变量
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_SAVE, 0, "保存")
.setIcon(android.R.drawable.ic_menu_save);
menu.add(0, MENU_DELETE, 0, "删除")
.setIcon(android.R.drawable.ic_menu_delete);
return true;
}
通过add函数返回的MenuItem可以设置menu的属性 如图标等。
通过@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case MENU_SAVE:
//做保存的那些事。
break;
case MENU_DELETE:
//做删除的那些事。
break;
}
return false;
}完成响应时间
通过 @Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
//通过id找到MenuItem
MenuItem item = menu.findItem(MENU_SAVE);
//根据需要更改item,使能等
return true;
}动态更改选项菜单
content menu 使用方法同上 长按view对象即可显示此菜单
首先需要在oncreate函数中注册上下文菜单的view对象
源码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("上下文菜单的载体");
this.registerForContextMenu(tv);
this.setContentView(tv);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, C_MENU_NEW, 0, "新建");
menu.add(0, C_MENU_OPEN, 0, "打开");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
switch (item.getItemId()) {
case C_MENU_NEW:
//做新建的那些事。
break;
case C_MENU_OPEN:
//做打开的那些事。
break;
}
return false;
}
sub menu 子菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu sub = menu.addSubMenu("yyyy");
sub.setIcon(android.R.drawable.ic_menu_search);
sub.add(0,MENU_LOCAL,0,"本地");
sub.add(0,MENU_INTERNET,0,"网络");
return true;
}
响应时间同option menu
options menu
当第一次调用选项菜单时,activity会调用onCreateOptionsMenu回调方法。
final int MENU_SAVE = Menu.FIRST;
final int MENU_DELETE = Menu.FIRST+1;
//android.view.Menu 变量
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_SAVE, 0, "保存")
.setIcon(android.R.drawable.ic_menu_save);
menu.add(0, MENU_DELETE, 0, "删除")
.setIcon(android.R.drawable.ic_menu_delete);
return true;
}
通过add函数返回的MenuItem可以设置menu的属性 如图标等。
通过@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case MENU_SAVE:
//做保存的那些事。
break;
case MENU_DELETE:
//做删除的那些事。
break;
}
return false;
}完成响应时间
通过 @Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
//通过id找到MenuItem
MenuItem item = menu.findItem(MENU_SAVE);
//根据需要更改item,使能等
return true;
}动态更改选项菜单
content menu 使用方法同上 长按view对象即可显示此菜单
首先需要在oncreate函数中注册上下文菜单的view对象
源码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("上下文菜单的载体");
this.registerForContextMenu(tv);
this.setContentView(tv);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, C_MENU_NEW, 0, "新建");
menu.add(0, C_MENU_OPEN, 0, "打开");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
switch (item.getItemId()) {
case C_MENU_NEW:
//做新建的那些事。
break;
case C_MENU_OPEN:
//做打开的那些事。
break;
}
return false;
}
sub menu 子菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu sub = menu.addSubMenu("yyyy");
sub.setIcon(android.R.drawable.ic_menu_search);
sub.add(0,MENU_LOCAL,0,"本地");
sub.add(0,MENU_INTERNET,0,"网络");
return true;
}
响应时间同option menu
更多相关文章
- 《Android面试宝典》学习笔记(第四章:对话框、信息提示和菜单)
- android中列表选项、单选选项、多选选项对话框的使用
- 自定义Android菜单背景
- Android之PopupWindow类似微信右上角的弹出菜单
- Android的onCreateOptionsMenu()创建菜单Menu详解
- 自定义Android菜单背景
- android用户界面之菜单(Menu)教程实例汇总
- Android菜单
- Android的onCreateOptionsMenu()创建菜单Menu详解