android 使用ImageButton的弹出菜单

mbzjlibv  于 2023-03-27  发布在  Android
关注(0)|答案(1)|浏览(123)

Im我的项目我有一个布局膨胀在适配器.我有一个ImageButton设置为显示弹出菜单所有的菜单都是以编程方式添加.但当我运行该项目并单击buttom,应用程序关闭以下错误;
android.view.InflateException:二进制XML文件com.example.ghanlice:layout/abc_popup_menu_item_layout中的第32行:无法解析索引% 1处的属性:TypedValue{t= 0x 2/d= 0x 7 f040158 a=-1}原因:不支持的操作异常:无法解析索引% 1处的属性:TypedValue{t=0x2/d=0x7f040158 a=-1}
疯狂的部分是,我有同样的弹出在其他适配器完美的工作。我只是不明白为什么这是不工作。
布局xml文件

<ImageButton
    android:id="@+id/achieve_more"
    android:layout_width="wrap_content"
    android:background="@null"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_more"
    />

适配器java文件

PopupMenu popupMenu = new PopupMenu(context, achieveMore, Gravity.END);

        if (uid.equals(myUid))
        {
            //add items to menu
            popupMenu.getMenu().add(Menu.NONE, 0,0, "Delete post");
            popupMenu.getMenu().add(Menu.NONE, 1,0, "Edit post");
        }
        popupMenu.getMenu().add(Menu.NONE, 2,0,"View details");

        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                int id = item.getItemId();
                if (id == 0)
                {
                    //delete is clicked
                    deleteWithImage(pid, image);
                }
                else if (id == 1)
                {
                    //Edit is clicked
                    Intent intent = new Intent(context, AddAchievement.class);
                    intent.putExtra("key", "editPost");
                    intent.putExtra("editPostId", pid);
                    intent.putExtra("editType", type);
                    context.startActivity(intent);
                }

                else  if (id == 2)
                {
                    Intent intent = new Intent(context, AchievementDetails.class);
                    intent.putExtra("postId", pid);
                    //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(intent);
                }
                return false;

            }
        });
        popupMenu.show();
vfwfrxfs

vfwfrxfs1#

在拖延了两天没有任何解决方案之后,我终于解决了这个问题!我所做的就是删除
导入androidx.appcompat.widget.PopupMenu;然后添加import android.widget.PopupMenu;
案件结案!!

相关问题