尝试调用虚拟方法 'android.view.Menu
Attempt to invoke virtual method 'android.view.Menu
我在 MainActivity.java 中没有此代码,我在 Login.java
中有它
我在 Logcat 中有这个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Menu
com.google.android.material.navigation.NavigationView.getMenu()' on a null object reference
at com.store.Credenciales.Login.addMenuItemLogOut(Login.java:93)
我在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
当应用程序尝试使用具有空值的对象引用时抛出。
您应该使用 getHeaderView (int index) 而不是 getMenu() 。
Gets the header view at the specified position.
试试
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);
我在 MainActivity.java 中没有此代码,我在 Login.java
中有它我在 Logcat 中有这个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Menu com.google.android.material.navigation.NavigationView.getMenu()' on a null object reference at com.store.Credenciales.Login.addMenuItemLogOut(Login.java:93)
我在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
当应用程序尝试使用具有空值的对象引用时抛出。
您应该使用 getHeaderView (int index) 而不是 getMenu() 。
Gets the header view at the specified position.
试试
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);