在菜单项上点击创建上下文菜单
问题描述:
我处于奇怪的状况,我试图在各处搜索,但是我没有找到任何有用的东西。可能是我跟随糟糕的设计。但这里是我的情况:在菜单项上点击创建上下文菜单
我在我的应用程序中有AppBar
,我在我们通常所做的应用程序栏上添加了ActionButton
。现在我想在用户点击应用栏的任何一个动作按钮时显示上下文菜单。
例如:如果我有应用程序栏上的设置按钮,并且用户单击该按钮,那么我想显示具有多个选项的上下文菜单。 我知道如何创建上下文菜单和处理上下文菜单项点击,但我不知道如何从操作按钮点击控制导致显示ContextMenu
。
这里是我的代码:
//inflating context menu which will display when user clicks app bar button example like setting
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu_sort, menu);
}
//handling context menu item clicks
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
但我不知道如何处理应用程序栏按钮,点击它可以显示上下文菜单:
//Below code is to handle app bar item clicks
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
//handling the menu clicks on menu.xml
switch (id){
//on below action_add click i want to display context menu
case R.id.action_add:
//not sure what to code here
break;
}
感谢您的帮助
答
如果我正在理解你,你想展示一个子菜单吗? 然后您需要在您的R.menu.context_menu_sort
中添加menu
标签。
像这样:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
android:title="@string/file" >
<!-- "file" submenu -->
<menu>
<item android:id="@+id/create_new"
android:title="@string/create_new" />
<item android:id="@+id/open"
android:title="@string/open" />
</menu>
</item>
</menu>
欲了解更多信息请参阅https://developer.android.com/guide/topics/ui/menus.html