Android问题集锦之四十一

最后更新于:2022-04-01 06:39:31

## getActionBar为null的解决以及ActionBar的Back键 我们用getActionBar获得ActionBar实例,将其隐藏或做其他操作。 ~~~ ActionBar actionBar = getActionBar(); ~~~ 不过我这样做了,但是actionBar是null。 问题是由Activity基类引起的,当使用AppCompatActivity或其他support包中的基类,那么获得ActionBar实例需要用另一个相应的方法,那就是getSupportActionBar(),ActionBar也要使用相应support包下的。 ~~~ android.support.v7.app.ActionBar actionBar = getSupportActionBar(); ~~~ 那么这样就可以ActionBar自带的back功能了。 ~~~ if(actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } ~~~ ~~~ @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if(id == R.id.home) {//back key Intent intent = NavUtils.getParentActivityIntent(this); if(intent != null) { if (NavUtils.shouldUpRecreateTask(this, intent)) { TaskStackBuilder.create(this) .addNextIntentWithParentStack(intent) .startActivities(); } else { intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); NavUtils.navigateUpTo(this, intent); } } else { Log.e(TAG,"intent is null"); } } return super.onOptionsItemSelected(item); } ~~~
';