actionview()有问题-java.lang.nullpointerexception:

eanckbw9  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(208)

这是mainactivity.java上的一部分代码。它基本上允许我在点击应用程序顶部的图标(cart\u badge\u text\u view)时转到cart片段。当我试图打开应用程序时,视图会加载,但随后它会立即崩溃。

@Override
public boolean onCreateOptionsMenu(final Menu menu) {

    getMenuInflater().inflate(R.menu.main_menu, menu);

    final MenuItem menuItem = menu.findItem(R.id.cartFragment);
    View actionView = menuItem.getActionView();    --> PROBLEM

    TextView cartBadgeTextView = actionView.findViewById(R.id.cart_badge_text_view);

    cartBadgeTextView.setText(String.valueOf(cartQuantity));
    cartBadgeTextView.setVisibility(cartQuantity == 0 ? View.GONE : View.VISIBLE);

    actionView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onOptionsItemSelected(menuItem);
        }
    });

这是构建应用程序后的日志:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.example, PID: 8621
  **java.lang.NullPointerException: Attempt to invoke interface method 'android.view.View android.view.MenuItem.getActionView()' on a null object reference       --> MAIN PROBLEM**
        at com.example.example.views.MainActivity.onCreateOptionsMenu(MainActivity.java:69)
        at android.app.Activity.onCreatePanelMenu(Activity.java:4206)
        at androidx.fragment.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:324)
        at androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:94)
        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImpl.java:3070)
        at androidx.appcompat.app.AppCompatDelegateImpl.preparePanel(AppCompatDelegateImpl.java:1895)
        at androidx.appcompat.app.AppCompatDelegateImpl.doInvalidatePanelMenu(AppCompatDelegateImpl.java:2176)
        at androidx.appcompat.app.AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:268)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题