gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:25 25 4
gpt4 key购买 nike

enter image description here

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

我尝试过的事情:

  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

求助!谢谢!

最佳答案

使用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>

Activity 类

@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);
}

关于android - 单击操作栏项目时显示弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com