在片段内部调用时抑制 getSupportActionBar() 的 NPE 警告
Suppress NPE Warning for getSupportActionBar() when called inside Fragments
我在下面的 setDisplayHomeAsUpEnabled
方法中收到 NullPointerException 警告。
if((getActivity()) != null) {
if(((AppCompatActivity) getActivity()).getSupportActionBar() != null) {
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
我该如何解决这个问题?
因为您没有检查 NullPointerException
((AppCompatActivity) getActivity()).getSupportActionBar() 给出 actionbar 对象
但您是直接拨打
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false)
这就是系统给出 NullPointerException 警告的原因。
if((getActivity()) != null) {
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(false);
}
}
把上面的代码。您的警告将被删除。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
使用工具栏是首选。如果使用 Toolbar 并设置 Actionbar,则无需检查 NullPointerException。
可能的原因是,如果您试图在 Activity 上下文之外执行此操作,您将得到 NullpointerException。它必须在 Activity 上下文中设置。
检查您的清单文件,如果您已将主题设置为 NoActionBar 并尝试访问 Actionbar,请将其更改为 Apptheme。
我在下面的 setDisplayHomeAsUpEnabled
方法中收到 NullPointerException 警告。
if((getActivity()) != null) {
if(((AppCompatActivity) getActivity()).getSupportActionBar() != null) {
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
我该如何解决这个问题?
因为您没有检查 NullPointerException ((AppCompatActivity) getActivity()).getSupportActionBar() 给出 actionbar 对象
但您是直接拨打
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false)
这就是系统给出 NullPointerException 警告的原因。
if((getActivity()) != null) {
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(false);
}
}
把上面的代码。您的警告将被删除。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
使用工具栏是首选。如果使用 Toolbar 并设置 Actionbar,则无需检查 NullPointerException。
可能的原因是,如果您试图在 Activity 上下文之外执行此操作,您将得到 NullpointerException。它必须在 Activity 上下文中设置。
检查您的清单文件,如果您已将主题设置为 NoActionBar 并尝试访问 Actionbar,请将其更改为 Apptheme。