我最开始的需求是,修改Actionbar的标题文字,用的方法是,
ActionBar actionBar = getActionBar();
发现这样获取的actionbar的实例为null,于是开启了查找资料的旅程,找到解决方案如下:
问题原因:
Activity基类引起的,当使用AppCompatActivity或其他support包中的基类,那么获得ActionBar实例需要用另一个相应的方法,那就是getSupportActionBar(),ActionBar也要使用相应support包下的。
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
这样就可以获取到acitonbar的实例了,可以对它为所欲为了.
- 使用actionbar的back功能
actionBar.setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if(itemId == android.R.id.home){ //注意是android.R包下的id
super.onBackPressed();
}
return super.onOptionsItemSelected(item);
}
- 如果仅仅是修改Actionbar的标题文字,可以在manifest.xml中修改
恩,暂时先写在这里,以后遇到问题了再补充!