单击操作栏项目时显示弹出菜单

Mav*_*ave 5 android

在此处输入图片说明

单击操作栏项时如何添加菜单弹出窗口(请参见屏幕截图)?我希望菜单项显示一个图标。

我尝试过的

  1. 为操作栏项设置actionProvider(支持lib v7)。在actionProvider中,为onCreateActionView返回null。在onPrepareSubMenu中,填充子菜单。这适用于Android 2.x,但不适用于Android 4.0,对于Android 2.x,则没有图标。

  2. 在actionProvider中,创建一个imageview并单击以显示PopupMenu,但是当我专门使用setIcon进行显示时,弹出菜单没有图标。

我不明白为什么PopupMenu不显示任何图标。我尽可能严格地遵循“官方”代码,但无济于事。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/widget/ShareActionProvider.java#195

请帮忙!谢谢!

Gui*_*hgo 6

使用popUpMenu->>>关注>

res / menu / horario.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item 
    android:id="@+id/menu_MudaDia"
    android:titleCondensed="Mudar Dia" 
    android:title="Mudar Dia" 
    android:icon="@drawable/ic_menu_popup" 
    android:showAsAction="always">
</item>
Run Code Online (Sandbox Code Playgroud)

活动类

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    inflater.inflate(R.menu.horario, menu);

    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {



    switch (item.getItemId()) {
    case R.id.menu_MudaDia:
        View vItem = getActivity().findViewById(R.id.menu_MudaDia);
        PopupMenu popMenu = new PopupMenu(getActivity(), vItem);
        for (int i = 0; i < diaSemana.length; i++) 
        {
            popMenu.getMenu().add(0, i, i, diaSemana[i]);
        }

        popMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                DIA = diaSemana[item.getItemId()];
                atualizaGUI();
                return true;
            }
        });
        popMenu.show();
        break;

    default:
        break;
    }

    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

  • 提示:您只需使用DIA = diaSemana [item.getItemId()];就可以消除整个`switch..case` :) (2认同)

Cod*_*ter 1

您可以尝试使用 ImageView 和 TextView 创建布局。在 PopUpWindow 内膨胀该布局(请参阅:http://developer.android.com/reference/android/widget/PopupWindow.html)。

使用 showAsDropDown(View actionBarIcon) 方法在单击操作栏图标时显示菜单。