代码都是差不多,为了说明先贴出来了,需要注意的是红字部分。
PopupMenu menu = new PopupMenu([color=red]getApplicationContext()[/color], v);
menu.getMenuInflater().inflate(R.menu.main, menu.getMenu());
menu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this, "点击了 "+item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
menu.show();
需要注意的是,这里如果填了xxxActivity.this,显示出来的菜单背景是白色,而且会多出来一些菜单部分。如果填了getBaseContext(),显示出来的是正常点了,但是字体颜色确实黑色的,背景也是黑灰的,让字体看不清晰了,如果使用getApplicationContext()就正常了,效果是背景黑灰,字体亮白的。
PopupMenu menu = new PopupMenu([color=red]getApplicationContext()[/color], v);
menu.getMenuInflater().inflate(R.menu.main, menu.getMenu());
menu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this, "点击了 "+item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
menu.show();
需要注意的是,这里如果填了xxxActivity.this,显示出来的菜单背景是白色,而且会多出来一些菜单部分。如果填了getBaseContext(),显示出来的是正常点了,但是字体颜色确实黑色的,背景也是黑灰的,让字体看不清晰了,如果使用getApplicationContext()就正常了,效果是背景黑灰,字体亮白的。