前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android “getActionBar()返回NullPointerException”问题分析

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

作者头像
飞奔去旅行
发布2019-06-13 11:20:30
8140
发布2019-06-13 11:20:30
举报
文章被收录于专栏:智慧协同智慧协同

通常,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对象。
代码语言:javascript
复制
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
  • 如果继承自AppCompatActivity,那么主题文件中需要使用AppCompatTheme,同时获取ActionBar的方法需要用getSupportActionBar(),如下:
代码语言:javascript
复制
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);

相关资料:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015.12.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 检查minSdkVersion,必须大于等于11
  • 2. 检查主题是否引入的是带有noActionBar字样的主题。
  • 3. 看看你的Activity是继承自Activity还是AppCompatActivity。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档