我的应用程序有两个活动,主要的一个是运行良好但是在打开登录时它会崩溃并出现以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'
这是我的代码片段引用工具栏(它基本上是登录活动+我要添加的工具栏):
public class LoginActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.mainmenu);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
工具栏和菜单在我的主要活动中运作良好。工具栏也在登录活动的XML布局中。
答案 0 :(得分:0)
在setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
答案 1 :(得分:0)
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference...
这个NPE贴心你首先设置工具栏
您没有设置工具栏..首先设置它... 这样做......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
toolbar = (Toolbar) findViewById(R.id.toolbar);
// toolbar.inflateMenu(R.menu.mainmenu);
setSupportActionBar(toolbar)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
您不需要使用toolbar.inflateMenu(),因为工具栏充当您的ActionBar。只有当您将工具栏用作独立窗口小部件时,才需要调用toolbar.inflateMenu()。您可以使用以下代码行处理菜单项单击事件...
toolbar.setOnMenuItemClickListener(
new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// Handle menu item click event here
return true;
}
});
希望这会对你有所帮助