Java 单击时弹出菜单不会弹出

Java 单击时弹出菜单不会弹出,java,android-studio,onclick,popupmenu,Java,Android Studio,Onclick,Popupmenu,我有一个ImageButton,它位于我的Recyclerview的项中,通常应该调用方法showPopuponclick。 我的计划是,当单击此Imagebutton时,将出现一个PopupMenu,您可以从中选择重命名或删除该项目。 但不幸的是,事情并没有按预期的那样进行。 我感谢你的帮助 <ImageButton android:id="@+id/img_btn_more" android:layout_width="wrap_cont

我有一个
ImageButton
,它位于我的
Recyclerview
项中,通常应该调用
方法
showPopup
onclick。 我的计划是,当单击此
Imagebutton
时,将出现一个
PopupMenu
,您可以从中选择重命名或删除该项目。 但不幸的是,事情并没有按预期的那样进行。 我感谢你的帮助

<ImageButton
            android:id="@+id/img_btn_more"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="8dp"
            android:background="@android:color/white"
            android:src="@drawable/ic_more"
            android:onClick="showPopup"/>

如果您在RecyclerView中,则必须在
ViewHolder中执行此操作
并传递构建RecycleServiceAdapter时获得的上下文

holder.*your_image_view*.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
        PopupMenu popup=new PopupMenu(mContext,v);
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem menuItem) {
            switch (menuItem.getItemId()){
                case R.id.item1: Toast.makeText(mContext," Random text1",Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.item2: Toast.makeText(mContext," Random text2",Toast.LENGTH_SHORT).show();
                    return true;
                default: return false;
            }
        }
    });
    popup.inflate(R.menu.popup_menu);
    popup.show();
    }
});

嗨,Cliz,如果这个或任何答案解决了你的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
holder.*your_image_view*.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
        PopupMenu popup=new PopupMenu(mContext,v);
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem menuItem) {
            switch (menuItem.getItemId()){
                case R.id.item1: Toast.makeText(mContext," Random text1",Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.item2: Toast.makeText(mContext," Random text2",Toast.LENGTH_SHORT).show();
                    return true;
                default: return false;
            }
        }
    });
    popup.inflate(R.menu.popup_menu);
    popup.show();
    }
});