【发布时间】:2020-04-04 08:12:51
【问题描述】:
如何使用 OnMenuItemClickListeners 创建自定义弹出菜单类?我似乎找不到任何使用单独课程的 SO 答案。他们都在他们的活动中这样做,但我想要一个单独的弹出菜单类。
我已经尝试过创建它:
public class AddPhotoMenu extends PopupMenu {
public AddPhotoMenu(Context context, View anchor) {
super(context, anchor);
}
@Override
public void inflate(int menuRes) {
super.inflate(R.menu.popup_menu_fragevent_addphotos);
}
@Override
public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.popup_menu_fragevent_takephoto:
//Inflate a layout
Log.d(TAG, "onMenuItemClick: Take photo");
break;
case R.id.popup_menu_fragevent_selectphotos:
//Inflate a layout
Log.d(TAG, "onMenuItemClick: Select photo");
break;
}
return false;
}
};
}
但是当我调用它时菜单不会膨胀。
AddPhotoMenu addPhotoMenu = new AddPhotoMenu(this, mAddPhotosButton1);
addPhotoMenu.show();
【问题讨论】:
-
您必须自己致电
inflate()。它不会自动运行。 -
你好,@david s。请尝试我的答案。
-
你好@david s。请尝试我的答案,它可能对你有用。
标签: java android menu layout-inflater android-inflate