1. 程式人生 > >Android問題集錦之四十一:getActionBar為null的解決以及ActionBar的Back鍵

Android問題集錦之四十一: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); }