android.support.v7包下的ToolBar和ActionBarActivity,均自带后退导航按钮,只是要手动开启,让它显示出来。
先来看看ToolBar,页面前台代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

如果要让后退按钮显示出来,需要在后台添加如下的代码

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

当然添加这行代码后仅仅是出现一个后退的箭头而已,点击后并没反应,需要继续添加监听事件才行,默认添加的按钮id是固定的,android.R.id.home,在onOptionsItemSelected中再添加如下的监听事件

     case android.R.id.home:
finish();
break;

其实这样并不是真正意义上的返回上一个页面,而是将这个页面销毁,从而显示上一个页面,也就是跳转之前的页面。

那么ActionBarActivity如何设置呢,看下面:

首先在要返回的页面A中设置该页面为要返回的页面

    setHomeButtonEnabled

然后在清单文件中设置页面B的parentActivityName为页面A即可,但是这个属性在API 16之后才可,之前的话要用meta-data才可

<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"></meta-data>

要在页面B中显示后退按钮,也要添加代码

        ActionBar actionBar=getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

这样在页面B的标题栏左上角就公显示一个后退箭头,点击后就会自动返回页面A,并不需要添加额外的监听事件。

总结:看起来ActionBarActivity自带的后退导航要比ToolBar的更方便,但是到目前为止,google已不建议使用ActionBarActivity,现在在AS中新建Activity继承的是AppCompatActivity,至于为什么我这个初学者并不知道,我也尝试实现ToolBar的自动后退效果,但是虽然ToolBar也有对应的setHomeButtonEnabled方法和setDisplayHomeAsUpEnabled,但是并不起作用,google后找到的都是说的要添加监听事件,并没有发现有说可以实现类似ActionBarActivity的效果,最后放弃。

Android v7包下Toolbar和ActionBarActivity实现后退导航效果的更多相关文章

  1. 关于Andorid的RecyclerView在V7包下找不到的解决办法

      关于Andorid的RecyclerView在V7包下找不到的解决办法 最近在学习使用RecyclerView替换现有的ListView,看了几篇文章.当准备自己动手实现的时候发现,V7包下找不到 ...

  2. android v7包的关联

    最近在使用到侧滑栏的时候,使用到了v7包下的actionbar,结果折腾了好久才折腾好,其实很简单的,操作步骤如下: 1. 在eclipse中导入v7包的工程 2. 在自己的工程中打开properti ...

  3. Android Apk包下查看 sha1

    用keytool工具查看sha1,格式如下:keytool -printcert -file  Urovo.RSA文件路径(APK解压后在Meta-INF文件夹下)

  4. Android中使用ImageViewSwitcher实现图片切换轮播导航效果

    前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(ViewPager未实现轮播)附链接: Android中使用ViewFlipper实现屏幕切换 Android中使用V ...

  5. 【Android - V】之Toolbar的使用

    Toolbar是Android V7包中的一个控件,用来代替Action Bar作为界面的头部标题栏布局.Toolbar相对于Action Bar的特点是更加灵活,可以显示在任何位置. 首先先来看To ...

  6. 通过android.provider包查看android系统定义的provider.

    原先的2.2的android源码已经不是那么容易找到了,我稍稍搜索了下找到了一两个没速度的死链就失去了兴趣.不过还好忽然发现在android.provider包下包含了常见的provider的使用方法 ...

  7. Android Support V7 包中 ActionBar的使用

    以下示例为API<11,因为API>=11时本来就有ActionBar可以使用,所以不猜讨论范围之内 今天Google发布了最新的API 18,包括众多新的性能,正好最近在研究Action ...

  8. 在Eclipse添加Android兼容包( v4、v7 appcompat )

    昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Support ...

  9. android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理

    前三篇文章 android v7兼容包RecyclerView的使用(三)--布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包Recycle ...

随机推荐

  1. 2018.12.18 bzoj2242: [SDOI2011]计算器(数论)

    传送门 数论基础题. 对于第一种情况用快速幂,第二种用exgcdexgcdexgcd,第三种用bsgsbsgsbsgs 于是自己瞎yyyyyy了一个bsgsbsgsbsgs的板子(不知道是不是数据水了 ...

  2. jquery checkbox反复调用attr('checked', true/false)只有第一次生效 Jquery 中 $('obj').attr('checked',true)失效的几种解决方案

    1.$('obj').prop('checked',true) 2. $(':checkbox').each(function(){ this.checked=true; }) 为什么:attr为失效 ...

  3. 修正剑桥模型预测-用python3.4

    下面是预测结果: #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" ""& ...

  4. HTML5与相关类的扩充

    1.getElementsByclassName()方法 <body> <div class='a1'>klkx1</div> <ul id='ul1'> ...

  5. typecho开启pjax,ajax,无刷新

    1.引入jquery和pjax 检查你的网站是否引入1.7.0版本以上的jquery.js,如果没有请全局引入 https://files.cnblogs.com/files/fan-bk/pjax. ...

  6. BT656与BT1120的区别

      从ITU-R BT1120文档上可知,BT1120支持的是1080p: 文档定义一帧为1 125 总行数和1 080 有效行:每行有效像素为1920图像频率60. 50. 30. 25 和 24H ...

  7. jquery取消事件冒泡的三种方法展示

    jquery取消事件冒泡的三种方法展示 html代码 <!doctype html> <html> <head> <meta charset="ut ...

  8. linux程序员的proc文件系统

    1) 设置core文件存放路径和文件名模式: 设置/proc/sys/kernel/core_pattern,如: echo "core" > /proc/sys/kerne ...

  9. 查看Redis集群所有节点内存工具

    指定集群中任意一个节点,查看集群中所有节点当前已用物理内存.配置的最大物理内存和系统物理内存. ​ ​源码(可从https://github.com/eyjian/redis-tools下载): #! ...

  10. android-基础编程-democoderjoy-架构篇

    设计这个demo很简单,针对每个控件放到一个listitem中去,主activity继承之listActivity,这样再override其单击效果进入到每个控件. 主界面流程 1.继承 MainAc ...