Android “getActionBar()返回NullPointerException”问题分析

通常,activity.getActionBar()返回NullPointerException原因是当前的activity没有ActionBar。从以下几个方面着手:

1. 检查minSdkVersion,必须大于等于11

Paste_Image.png

11之前的版本是不支持ActionBar的。

2. 检查主题是否引入的是带有noActionBar字样的主题。

如果引入NoActionBar,顾名思义,没有ActionBar,肯定回报空指针了。

3. 看看你的Activity是继承自Activity还是AppCompatActivity

这里有相对麻烦点了:

  • 如果直接继承自Activity那么在主题文件中就不能用AppCompatTheme也就是Theme.AppCompat.*的主题,使用android:Theme.Light等是可以的。这样activity.getActionBar()能正确返回ActionBar对象。
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
  • 如果继承自AppCompatActivity,那么主题文件中需要使用AppCompatTheme,同时获取ActionBar的方法需要用getSupportActionBar(),如下:
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);

相关资料:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容