简体   繁体   中英

Popup menu crash at show();

So I'm trying to create a popup menu which will popup when user presses on ImageButton.

I'm getting strange force close error on popupMenu.show() :

case R.id.action_menu_edit_biljeske_uredi:
  linearLayoutDodajBiljeskuBojeIOstalaSranja.setVisibility(View.VISIBLE);
  imageButtonBiljeskeDodajBiljeskuBojaPozadine
    = (ImageButton) findViewById(R.id.imageButtonBiljeskeDodajBiljeskuBojaPozadine);
  imageButtonBiljeskeDodajBiljeskuBojaPozadine.setOnClickListener(
    new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        PopupMenu popupMenu = new PopupMenu(getApplicationContext(),
                                            imageButtonBiljeskeDodajBiljeskuBojaPozadine);
        popupMenu.getMenuInflater().inflate(R.menu.menu_popup_biljeske_boje,
                                            popupMenu.getMenu());
        popupMenu.show();
      }
    });
}

Does anyone know why?

Logcat

04-12 20:22:27.847 24594-24594/com.daroioradecic.studyandexamplannerbydario E/AndroidRuntime:
  FATAL EXCEPTION: main
  Process: com.daroioradecic.studyandexamplannerbydario, PID: 24594
  java.lang.RuntimeException: Failed to resolve attribute at index 6
      at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:603)
      at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:6474)
      at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6642)
      at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:741)
      at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:685)
      at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:62)
      at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
      at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
      at android.support.v7.view.menu.MenuPopupHelper$MenuAdapter.getView(MenuPopupHelper.java:374)
      at android.support.v7.view.menu.MenuPopupHelper.measureContentWidth(MenuPopupHelper.java:223)
      at android.support.v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:157)
      at android.support.v7.view.menu.MenuPopupHelper.show(MenuPopupHelper.java:129)
      at android.support.v7.widget.PopupMenu.show(PopupMenu.java:216)
      at com.daroioradecic.studyandexamplannerbydario.BiljeskeDodajBiljesku$2.onClick(BiljeskeDodajBiljesku.java:106)
      at android.view.View.performClick(View.java:4856)
      at android.view.View$PerformClick.run(View.java:19956)
      at android.os.Handler.handleCallback(Handler.java:739)
      at android.os.Handler.dispatchMessage(Handler.java:95)
      at android.os.Looper.loop(Looper.java:211)
      at android.app.ActivityThread.main(ActivityThread.java:5389)
      at java.lang.reflect.Method.invoke(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:372)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

Menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:icon="@drawable/ic_action_crvena"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeCrvena"/>
    <item
        android:icon="@drawable/ic_action_ljubicasta"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeLjubicasta"/>
    <item
        android:icon="@drawable/ic_action_svijetloplava"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeSvijetloPlava"/>
    <item
        android:icon="@drawable/ic_action_tamnoplava"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeTamnoPlava"/>
    <item
        android:icon="@drawable/ic_action_zelena"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeZelena"/>
    <item
        android:icon="@drawable/ic_action_usranozuta"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeUsranoZuta"/>
    <item
        android:icon="@drawable/ic_action_narancasta"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeNarancasta"/>
    <item
        android:icon="@drawable/ic_action_siva"
        android:title=""
        android:id="@+id/popupMenuBiljeskeBojeSiva"/>
</menu>
PopupMenu popupMenu = new PopupMenu(getApplicationContext(), imageButtonBiljeskeDodajBiljeskuBojaPozadine);

Replace getApplicationContext() with YourActivity.this. I think your problem will be solved.

Why getApplicationContext() is not working, visit https://possiblemobile.com/2013/06/context/ for detailed solution.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM