在onCreate()活动方法中,我为ToolBar编写了以下代码
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);我的IDE使我感到温暖,因为getSupportActionBar().setDisplayHomeAsUpEnabled(true);可能会产生getSupportActionBar().setDisplayHomeAsUpEnabled(true);
,我的问题是,我是否应该忽略它,我怎样才能解决它呢?
发布于 2015-11-29 12:46:58
IDE警告您一个潜在的NullPointerException,因为有许多情况下,应用程序可以抛出一个。例如,您可以为整个NoActionBar主题使用Application (或仅针对关注的activity),但仍然试图使用getActionBar() (或getSupportActionBar())检索对操作栏的引用。
只需忽略警告,但请记住上面的注释。
更新:
通过显式检查是否为空,可以消除警告:
toolbar = (Toolbar) findViewById(R.id.tool_bar);
if (toolbar != null) {
// you can safely invoke methods on the Toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
// Toolbar is null, handle it
}发布于 2015-11-29 12:46:15
您可以检查null,但如果它没有崩溃,则不应该是必需的:
if(getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}发布于 2015-11-29 13:04:05
两个答案都是正确的,但是如果你只想删除警告
ActionBar actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayHomeAsUpEnabled(true);断言actionBar != null,表示ActionBar不是null,因此对该变量调用任何方法都不会产生NullPointerException的警告。
我想如果你
assert getSupportActionBar() != null但我不确定。
https://stackoverflow.com/questions/33982892
复制相似问题