安卓基础6:页面跳转及数据传递

来源:互联网 发布:js格式化日期函数 编辑:程序博客网 时间:2024/05/27 00:58

页面跳转及数据传递

四大组件:

界面:Activity

广播:broadCastReceiver

服务service

内容提供者:contentProvider

标签说明:

一个Activity就相当于一个界面;

只要创建四大组件之一,就需要在清单文件中配置一下;

application:

代表当前应用;

intent-filter:

意图过滤器:


这里写明了应用的主入口,和当前界面的种类为应用启动项;

 

页面的跳转

所谓的隐式意图,它的跳转通过action来进行跳转;而显示意图,则是通过包名、类名、界面名这些显示的信息进行跳转;

隐式意图:

通过制定一组动作或者数据 比如:电话拨号器案例;


Eg:

 

显示意图:

通过指定包名和界面名来开启activity

这里第一个参数是包名,第二个参数是界面的名字

附:


跳转文件的配置文件


简单写法:通过构造函数执行

总结:

1、显示意图更加安全,隐式意图不是很安全;

2、开启自己应用的界面用显示意图,在配置Activity时不需要配置意图过滤器

3、开启其他应用的界面用隐式意图;  eg:电话播放器(把系统的应用打开)

 

人品计算器

代码:

界面

主界面



跳转界面:


事物处理层:

主界面:


跳转界面:


配置xml配置文件

数据传递:

通过意图传递数据的几种方式:

通过隐式意图中的setData方法传递

传递:


接收:

可以直接通过intent传递

可传递java八大数据及jason数据、集合

传递:


接收:

不同界面返回数据

步骤

1、设置requestcode

Void  startActivityForResult(Intent intent, int requestCode):

当开启界面需要返回内容时调用;

2、设置resultcode

setResult(resultcode,intent);

在返回主界面之后,调用主界面的方法:根据返回请求码和结果码的不同进行获取不同页面传回的数据,并进行处理

protected voidonActivityResult(int requestCode,intresultCode, Intent data){}


短信大全小案例:

1、用listView画UI界面

2、写业务逻辑

3、通过隐式意图,把发送短信页面打开,并且把数据传递过去

代码:

界面

主界面:


跳转界面


事务处理层:


因为跳转界面是系统自带,因此不需要去xml中配置;

短信发送小案例:

总结实现步骤:

1、画mainActivity页面

2、画联系人页面:用一个ListView展示

3、写mainActivity的逻辑 主要代码

4、写短信模板页面,用listView展示

5、实现短信末班

6、通过发送按钮发送短信

代码:

主界面


联系人

短信

界面

主界面:


联系人界面:

ListView:


View内容:

短信界面:

List界面:

View界面:

事务处理:

主界面处理


联系人处理:



 

信息处理

结果码和请求码:

之前在返回界面的时候会设置,在获取内容时,可以更具他们的数值判断是谁给我的数据;

 

开启其他界面:

Void  startActivityForResult(Intent  intent, int  requestCode):

当开启界面需要返回内容时调用;

void  startActivity(Intent  intent)

仅仅视为了打开界面而不需返回内容时;

 

Activity的生命周期:

生命周期中几个相关函数:

onCreate:在创建界面时调用

onstart:当界面可见时调用

onresume:在界面焦点重新获取时

onrestart:在界面重新可见时(点击home之后再回来)

onpause:在界面焦点失去时,按钮不可按时调用

onstop:再界面不可见时

ondestroy:在界面关闭时

举例:

1、 当点击后退键:

a)      调用onpause

b)     调用onstop

c)      调用ondestory

2、 当横竖切屏

a)      调用onpause

b)     调用onstop

c)      调用ondestory

d)     调用onCreate

e)      调用onstart

f)       调用调用onresume

注意:

当横竖切屏时,Activity会销毁然后再创建

为了防止Activity销毁,一般程序会将Activity切屏朝向写死

在AndroidManifest.xml中的activity中写入属性

1、


2、

 

任务栈:

1、栈:先进后厨

2、队列:先进先出

3、任务栈:是用来维护Activity的用户操作体验

4、打开一个Activity叫进栈

5、关闭一个Activity叫出栈

6、我们用户操作的Activity永远是栈顶的Activity

7、说我们应用程序退出了,实际上是任务栈清空了但是进程依然存在

(安卓先给应用分配了一个Linux进程)

8、一般情况下,一个应用程序对应一个任务栈

 

Activity的四种启动模式

1、standard默认模式:按顺序入栈

2、SingleTop启动模式:查看任务栈的最顶层是否为该线程

3、SingleTask启动模式:查看任务栈中是否有该线程(节约了内存)

4、SingleInstance启动模式:单独创建一个任务栈,并且只有一个实例

eg:来电界面;(为了解决内存)