美文网首页Android
给AppCompatActivity的标题栏上加上返回按钮

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

作者: 赵者也 | 来源:发表于2016-12-15 10:48 被阅读0次

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

创建空的Activity

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


默认显示效果

此时如果需要给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);
    }

运行效果,如下:


加上返回键的效果

完整的示例代码如下:

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的标题栏上加上返回按钮

    本文链接:https://www.haomeiwen.com/subject/jcwwmttx.html