Android - 页面返回上一页面的三种方式

  今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程。

  最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式。

一. 自己布置一个back的按钮或图片

   当然就要自己写回退实现的逻辑,例如back的id为R.id.back,在onClick方法中,switch case中调用finish方法,case R.id.back: finish();back();

二. 使用系统提供的Action Bar

       Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。       

       简单来说,就是系统提供的标准组件,让我们方便的实现后退功能。

       ActionBar的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了。

但有一点要注意的是,如果要在Java代码中操作ActionBar,例如setTitle,指定其文字,必须在onStart方法中进行,而不能是onCreate方法,因为在系统周期中,onStart方法时View才是可见的。

1     @Override
2     public void onStart() {
3         super.onStart();
4         if (mIsInProvision) {
5             getActionBar().setTitle(R.string.connect_to_internet);
6         }
7     }

  另外,如果要处理action bar的点击事件,例如点击action bar时禁止后退,只需要在onOptionsItemSelected方法中处理android.R.id.home的事件就可以了。id.home就是action bar的id。        

 1     @Override
 2     public boolean onOptionsItemSelected(MenuItem item) {
 3         switch (item.getItemId()) {
 4             case android.R.id.home: 6                     return false;12         }
13         return super.onOptionsItemSelected(item);
14     }

  如上的代码,点击action bar将不能回退。

三. 机器上的back按键

      处理此按键的后退功能,只需要在onBackPressed方法中就可以。

1     @Override
2     public boolean onBackPressed() {
3         return true;
4     }

以上就是自己在解Bug中总结的三种方式,作为小白,继续学习Android~加油~

                                                   - 2016年5月6日午

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Android实现两个ScrollView互相联动,同步滚动的效果

最近在做一个项目,用到了两个ScrollView互相联动的效果,简单来说联动效果意思就是滑动其中的一个ScrollView另一个ScrollView也一同跟着滑...

2135
来自专栏小巫技术博客

Android技巧一:启动屏+功能引导页

782
来自专栏李蔚蓬的专栏

Material Design 实战 之第四弹 —— 卡片布局

首先这里准备用CardView来填充主题内容, CardView是用于实现卡片式布局效果的重要控件,由appcompat-v7库提供。 实际上,CardVi...

281
来自专栏李蔚蓬的专栏

Material Design 实战 之第一弹——Toolbar详解

本模块共有六篇文章,参考郭神的《第一行代码》,对Material Design的学习做一个详细的笔记,大家可以一起交流一下:

622
来自专栏编程思想之路

Android中应用调用系统权限

现在设备的安全性越来越受到重视,随之而来的便是开发中的各种不便,比如有普通权限,运行时权限,系统权限之分。对于运行时权限的添加可以参考 对于Android中各个...

2146
来自专栏学海无涯

Android开发之高德地图实现定位

在应用开发中,地图开发是经常需要使用的“组件”,Google Map虽然有官方教程,无奈用不起来,原因你懂的~~那么国内比较出名的是就是百度地图和高德地图,由于...

3394
来自专栏学海无涯

Android开发之那些好用的数据结构与API(二)

在 Android开发之那些好用的数据结构与API 一文中提到了Android中一些好用的数据结构和API,这次继续补充几个我在项目中用到的好用的但是不是人人都...

3306
来自专栏Android干货园

Android高仿微信照片选择器+预览+显示照片

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/49...

532
来自专栏项勇

笔记31 | 归纳总结Android的点击事件

2118
来自专栏青蛙要fly的专栏

项目需求讨论-APP中提交信息及编辑信息界面及功能

好久好久没写文章了,这次我们来讨论下一些具有填写很多资料的界面,或者详情编辑界面等如何做起来更方便。 (PS:我写的可能不好,希望大家不好喷,哈哈,可以留言)

812

扫码关注云+社区