public class
MainActivity
extends
Activity
{
PopupMenu
popup
=
null;
@Override
protected void
onCreate
(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState)
;
setContentView(R.layout.
main
)
;
}
public void
onPopupButtonClick
(View button)
{
//创建PopupMenu对象
popup
=
new
PopupMenu(
this,
button)
;
//将R.menu.popup_menu菜单资源加载到popup菜单中
popup
.getMenuInflater().inflate(R.menu.
popup_menu
,
popup
.getMenu())
;
//为popup菜单的菜单项单击事件绑定事件监听器
popup
.setOnMenuItemClickListener(
new
PopupMenu.OnMenuItemClickListener()
{
@Override
public boolean
onMenuItemClick
(MenuItem item)
{
switch
(item.getItemId())
{
//隐藏该对话框
popup
.dismiss()
;
break;
default
:
//使用Toast显示用户单击的菜单项
Toast.
makeText
(MainActivity.
this,
"您单击了【"
+ item.getTitle() +
"】菜单项"
,
Toast.
LENGTH_SHORT
).show()
;
}
return true;
}
})
;
popup
.show()
;
}
}
<?
xml version=
"1.0"
encoding=
"utf-8"
?>
<!--定义一组单选菜单项-->
<group
android
:checkableBehavior=
"single"
>
<!--定义四个菜单项-->
<item
android
:id=
"@+id/find"
android
:title=
"查找"
android
:alphabeticShortcut=
"f"
/>
<item
android
:id=
"@+id/add"
android
:title=
"添加"
android
:alphabeticShortcut=
"a"
/>
<item
android
:id=
"@+id/edit"
android
:title=
"编辑"
android
:alphabeticShortcut=
"e"
/>
<item
android
:id=
"@+id/exit"
android
:title=
"隐藏菜单"
android
:alphabeticShortcut=
"w"
/>
</group>
</menu>
<?
xml version=
"1.0"
encoding=
"utf-8"
?>
<!--定义一个线性布局容器-->
<LinearLayout
tools
:context=
".MainActivity"
android
:orientation=
"vertical"
android
:layout_width=
"match_parent"
android
:layout_height=
"match_parent"
>
<Button
android
:id=
"@+id/button"
android
:layout_width=
"wrap_content"
android
:layout_height=
"wrap_content"
android
:onClick=
"onPopupButtonClick"
android
:text=
"单击我"
/>
</LinearLayout>