//激活显示菜单
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.option,menu);
return true;
}
//当菜单被选中时操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.save:
Toast.makeText(this,"保存成功",Toast.LENGTH_SHORT).show();
break;
case R.id.setting:
Toast.makeText(this,"设置成功",Toast.LENGTH_SHORT).show();
break;
case R.id.exid:
Toast.makeText(this,"退出成功",Toast.LENGTH_SHORT).show();
finish();
}
return super.onOptionsItemSelected(item);
}
2.上下文菜单
//contextMenu菜单的使用
//1.注册
registerForContextMenu(findViewById(R.id.btn10));
//2.创建,覆盖OnCreateMenu
//3.菜单项的操作
//2.创建,覆盖OnCreateMenu
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.contextmenu,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.rename:
Toast.makeText(this,"重命名",Toast.LENGTH_SHORT).show();
case R.id.queding:
Toast.makeText(this,"确定",Toast.LENGTH_SHORT).show();
case R.id.qvxiao:
Toast.makeText(this,"取消·",Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
使用上下文的方法创建
//4.使用上下文操作模式1.实现ActionMode CallBack 2.在view长按中启动上下文操作模式
findViewById(R.id.btn10).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
startActionMode(cb);
return false;
}
});
ActionMode.Callback cb = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
//启动窗体时激活(StartActionMode(Callback))时调用
Log.e("Tag","创建");
getMenuInflater().inflate(R.menu.contextmenu,menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
//在创建方法后进行使用
Log.e("Tag","准备");
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
//点击控件的时候使用
Log.e("Tag","使用");
switch (menuItem.getItemId()){
case R.id.rename:
Toast.makeText(menuActivity.this,"重命名",Toast.LENGTH_SHORT).show();
case R.id.queding:
Toast.makeText(menuActivity.this,"确定",Toast.LENGTH_SHORT).show();
case R.id.qvxiao:
Toast.makeText(menuActivity.this,"取消·",Toast.LENGTH_SHORT).show();
}
return true;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
//上下文操作结束的时候使用
Log.e("Tag","结束");
}
};
//给按键添加点击效果,实现弹出菜单
final Button popup = findViewById(R.id.btn10);
popup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//1.实例化PopupMenu对象(参数2被锚定的对象,也就是弹出框对应的控件位置)
final PopupMenu menu = new PopupMenu(menuActivity.this,popup);
//2.加载菜单资源,将菜单样式加入到菜单中
menu.getMenuInflater().inflate(R.menu.popup,menu.getMenu());
//3.添加监听事件
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.copyItem:
Toast.makeText(menuActivity.this,"复制成功",Toast.LENGTH_SHORT).show();
case R.id.pasterItem:
Toast.makeText(menuActivity.this,"粘贴成功",Toast.LENGTH_SHORT).show();
}
return true;
}
});
//4.显示菜单,很重要
menu.show();
}
});