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();
1条答案
按热度按时间vfwfrxfs1#
在拖延了两天没有任何解决方案之后,我终于解决了这个问题!我所做的就是删除
导入androidx.appcompat.widget.PopupMenu;然后添加import android.widget.PopupMenu;
案件结案!!