- optionMenu
- 通过代码方式实现
在Activity中重写onCreateOptionsMenu
方法,直接使用menu对象的add方法,add方法有着4个参数
groupId:menu组的Id,如果不关心可以设置为0
itemId:menu中每一个item的Id
order:是顺序的意思,不关心可以设置为0
menu.add(1,1,0,"添加");
menu.add(1,2,0,"删除");
- 通过引用资源文件实现
首先创建资源文件:
接着创建MenuInflater对象,使用MenuInflater对象的inflate方法引用menu资源文件
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.option_menu,menu);
实现效果:
点击右上角的三个点弹出optionMenu
- 为每一个Item设置监听
重写onOptionsItemSelected方法
如果使用的加载资源文件那么:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.add:
Toast.makeText(this, "点击了添加", Toast.LENGTH_SHORT).show();
break;
case R.id.del:
Toast.makeText(this, "点击了删除", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
如果使用的是纯代码的方式,那么就填入已经设置好的id
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
Toast.makeText(this, "点击了添加", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this, "点击了删除", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
- contextMenu
类似微信聊天框长按可以显示选项
1 .引用一个按钮
2 .设置按钮的监听setOnCreateContextMenuListener(this)
3 .重写onCreateContextMenu方法,在这个方法中可以创建menu的item内容(两种方法同上)
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.menu,menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
效果:
在长按按钮的焦点处会弹出menu