尝试调用虚拟方法';android.view.Menu 我在MainActivity.java中没有这个代码,我在一个名为Login.java的代码中有它

尝试调用虚拟方法';android.view.Menu 我在MainActivity.java中没有这个代码,我在一个名为Login.java的代码中有它,java,android,android-studio,nullpointerexception,android-navigationview,Java,Android,Android Studio,Nullpointerexception,Android Navigationview,我在Logcat中有以下错误: Login.java:93中的代码是以下函数: private void addMenuItemLogOut(){ NavigationView navigationView= (NavigationView) findViewById(nav_view); Menu menu = navigationView.getMenu(); //Line 93 menu.findItem(R.id.nav_signin).setVisible(fa

我在Logcat中有以下错误:

Login.java:93中的代码是以下函数:

private void addMenuItemLogOut(){
    NavigationView navigationView= (NavigationView) findViewById(nav_view);
    Menu menu = navigationView.getMenu(); //Line 93
    menu.findItem(R.id.nav_signin).setVisible(false);
    menu.findItem(R.id.nav_send).setVisible(true);
}
和命令,当用户输入正确的用户名和密码时,使函数更高

if(isLogin){
    addMenuItemLogOut(); //Here
    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    Bundle bundle =  new Bundle();
    bundle.putString("user_id", userd);
    intent.putExtras(bundle);
    startActivity(intent);
}

当应用程序尝试使用具有空值的对象引用时,将引发NullPointerException

您应该使用而不是getMenu()

获取指定位置的标题视图

试一试

 NavigationView navigationView       = findViewById(R.id.nav_view);
 navigationView.setNavigationItemSelectedListener(this);
 View header         = navigationView.getHeaderView(0);
 navigationView.getMenu().findItem(R.id.nav_signin).setVisible(false);
 navigationView.getMenu().findItem(R.id.nav_send).setVisible(true);

当应用程序尝试使用具有空值的对象引用时,将引发NullPointerException

您应该使用而不是getMenu()

获取指定位置的标题视图

试一试

 NavigationView navigationView       = findViewById(R.id.nav_view);
 navigationView.setNavigationItemSelectedListener(this);
 View header         = navigationView.getHeaderView(0);
 navigationView.getMenu().findItem(R.id.nav_signin).setVisible(false);
 navigationView.getMenu().findItem(R.id.nav_send).setVisible(true);

@0X0nosugarYes@0X0nosugar是的,我有这样一个:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.com.google.android.material.navigation.NavigationView.getHeaderView(int)”,您应该使用
findViewById(R.id.your\id)
。检查您的id
nav_view
是否存在于xml中?是的,它存在于activity_main.xml中我在MainActivity.java中没有此代码,我有一个叫登录的。java@snow915您的
NavigationView
属于哪个活动?现在我有了这个:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.com.google.android.material.navigation.NavigationView.getHeaderView(int)”。您应该使用
findViewById(R.id.your_id)
。检查您的id
nav_view
是否存在于xml中?是的,它存在于activity_main.xml中我在MainActivity.java中没有此代码,我在一个名为Login的文件中有此代码。java@snow915您的
NavigationView
属于哪个活动?