PopupMenu popup = new PopupMenu(mContext, view); try { Field[] fields = popup.getClass().getDeclaredFields(); for (Field field : fields) { if ("mPopup".equals(field.getName())) { field.setAccessible(true); Object menuPopupHelper = field.get(popup); Class<?> classPopupHelper = Class.forName(menuPopupHelper .getClass().getName()); Method setForceIcons = classPopupHelper.getMethod( "setForceShowIcon", boolean.class); setForceIcons.invoke(menuPopupHelper, true); break; } } } catch (Exception e) { e.printStackTrace(); } prepareMenu(popup.getMenu()); popup.show();
PopupMenu popupMenu = new PopupMenu(this, anchor); popupMenu.getMenuInflater().inflate(R.menu.process, popupMenu.getMenu()); try { Field field = popupMenu.getClass().getDeclaredField("mPopup"); field.setAccessible(true); Object menuPopupHelper = field.get(popupMenu); Class<?> cls = Class.forName("com.android.internal.view.menu.MenuPopupHelper"); Method method = cls.getDeclaredMethod("setForceShowIcon", new Class[]{boolean.class}); method.setAccessible(true); method.invoke(menuPopupHelper, new Object[]{true}); } catch (Exception e) { e.printStackTrace(); } popupMenu.show();
Field[] fields = popup.getClass().getDeclaredFields(); for (Field field : fields) { if ("mPopup".equals(field.getName())) {
btnExpand.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu popup = new PopupMenu(btnExpand.getContext(), itemView); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_Delete: moveFile(recordName.getText().toString(), getAdapterPosition()); return true; default: return false; } } }); popup.inflate(R.menu.second_contect); popup.setGravity(Gravity.RIGHT); try { Field mFieldPopup=popup.getClass().getDeclaredField("mPopup"); mFieldPopup.setAccessible(true); MenuPopupHelper mPopup = (MenuPopupHelper) mFieldPopup.get(popup); mPopup.setForceShowIcon(true); } catch (Exception e) { } popup.show(); } });
Field[] fields = popup.getClass().getDeclaredFields(); for (Field field : fields) { if ("mPopup".equals(field.getName())) {
.getClass().getName()); Field mPopup = classPopupMenu.getDeclaredField("mPopup"); mPopup.setAccessible(true);