android getActionBar为null

来源:互联网 发布:含氟牙膏推荐 知乎 编辑:程序博客网 时间:2024/05/17 02:41

本文转自:http://blog.csdn.net/lincyang/article/details/46286895

我们用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);    }
原创粉丝点击