创建菜单项的弹出窗口(或上下文)菜单
问题描述:
我想使用Android支持设计库中的菜单。当我长时间按下时,我想创建该项目的弹出菜单或上下文菜单。 我已经试过this但没有任何反应。我知道我可以在导航项中使用自定义布局,但默认项目看起来不错,所以我想与他们合作。创建菜单项的弹出窗口(或上下文)菜单
这里是我menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:title="SubMenuTitle">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/myId"
android:icon="@drawable/ic_menu_camera"
android:title="SubMenuItem"
/>
</group>
</menu>
</item>
<item
android:id="@+id/nav_gallery"
android:clickable="true"
android:icon="@drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="Tools" />
</group>
<item android:title="Communicate">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_send"
android:icon="@drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
</menu>
而且一些代码
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_menu_drawer, menu);
for(int i = 0; i < menu.size(); i++){
View v = new View(this);
registerForContextMenu(v);
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//Your longclick listener callback logic goes here
Log.d("dbg", "longClicked");
popup(v);
return false;
}
});
menu.getItem(i).setActionView(v);
}
return true;
}
private void popup(View v){
PopupMenu pMenu = new PopupMenu(this, v);
pMenu.inflate(R.menu.popup_menu);
pMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
@Override
public boolean onMenuItemClick(MenuItem item){
Toast.makeText(MenuActivity.this, item.toString(), Toast.LENGTH_LONG).show();
return true;
}
});
}
答
你不是叫pMenu.show();