通常,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);
相关资料: