1.系统菜单OptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//和系统进行绑定
getMenuInflater().inflate(R.menu.optionmenu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.oo1:
Toast.makeText(this, "张三", Toast.LENGTH_SHORT).show();
break;
case R.id.oo2:
Toast.makeText(this, "李四", Toast.LENGTH_SHORT).show();
break;
case R.id.oo3:
Toast.makeText(this, "王二", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
效果:
2.上下文菜单
长按弹出菜单栏
//注册一个上下文菜单
registerForContextMenu(hello);
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//和系统进行绑定
getMenuInflater().inflate(R.menu.optionmenu,menu);
}
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.oo1:
Toast.makeText(this, "张三", Toast.LENGTH_SHORT).show();
break;
case R.id.oo2:
Toast.makeText(this, "李四", Toast.LENGTH_SHORT).show();
break;
case R.id.oo3:
Toast.makeText(this, "王二", Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
3.PopupMenu菜单
点击弹出菜单栏
public void createPopupMenu(){
PopupMenu popupMenu=new PopupMenu(this,holl1);//this(上下文)holl1(在holl1位置弹出)
popupMenu.inflate(R.menu.optionmenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.oo1:
Toast.makeText(MainActivity.this, "张三", Toast.LENGTH_SHORT).show();
break;
case R.id.oo2:
Toast.makeText(MainActivity.this, "李四", Toast.LENGTH_SHORT).show();
break;
case R.id.oo3:
Toast.makeText(MainActivity.this, "王二", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
popupMenu.show();
}
4.PopupWindow窗口
public void tan(View view) {
//创建对象
PopupWindow popupWindow = new PopupWindow(this);
//布局加载
View inflate = LayoutInflater.from(this).inflate(R.layout.popup_weido, null);
//三要素缺一不可
popupWindow.setContentView(inflate);//要展示的布局
popupWindow.setHeight(200);
popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
//点击空白处是否取消
popupWindow.setOutsideTouchable(true);
//popupWindow.showAsDropDown(holl1);//指定的位置显示
View inflate1 = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
//设置动画
popupWindow.setAnimationStyle(R.style.pop_style);
popupWindow.showAtLocation(inflate1, Gravity.CENTER,0,0);
}