OptionMenu
出现在窗口右上角得OptionMenu
每个Activity只有一个OptionMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.option,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
}
return super.onOptionsItemSelected(item);
}
ContextMenu
长按view不放,就会在屏幕中间弹出ContextMenu
先要对有上下文菜单的contextmenu进行注册
registerForContextMenu(findViewById(R.id.button));
生成contenxtmenu实例,设置不同选项的操作
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.context,menu);
}
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.delete:
Toast.makeText(this,"this is button1",Toast.LENGTH_SHORT).show();
break;
case R.id.exit:
Toast.makeText(this,"this is button2",Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
PopupMenu
一个模态形式展示的弹出风格的菜单,绑定在某个view上,一般出现在被绑定的View的下分。