Android问题集锦:getActionBar为null的解决以及ActionBar的Back键

我最开始的需求是,修改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中修改

Android问题集锦:getActionBar为null的解决以及ActionBar的Back键_第1张图片

恩,暂时先写在这里,以后遇到问题了再补充!

你可能感兴趣的:(Android开发)