给AppCompatActivity的标题栏上加上返回按钮

目前基于android6.0版本sdk并通过android studio创建的空Activity默认都是继承自AppCompatActivity。

给AppCompatActivity的标题栏上加上返回按钮_第1张图片
创建空的Activity

在默认情况下,这个Activity在标题栏上是没有返回按钮的,如下图所示:


给AppCompatActivity的标题栏上加上返回按钮_第2张图片
默认显示效果

此时如果需要给AppCompatActivity的标题栏上加上返回按钮,可以在Activity的onCreate中加入如下代码:

    android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if(actionBar != null){
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

在onOptionsItemSelected中加入如下代码:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                this.finish(); // back button
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

运行效果,如下:


给AppCompatActivity的标题栏上加上返回按钮_第3张图片
加上返回键的效果

完整的示例代码如下:

package com.toby.personal.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        if(actionBar != null){
            actionBar.setHomeButtonEnabled(true);
            actionBar.setDisplayHomeAsUpEnabled(true);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                this.finish(); // back button
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

}

你可能感兴趣的:(给AppCompatActivity的标题栏上加上返回按钮)