深入理解 intent (1)

14 篇文章 0 订阅

一. 使用Internt 连接activity

1.创建 intent 

用下面的构造方法

Intent.Intent(Context packgeContext ,Class <?> cls );

或者先构造 一个未指向 的intent,再用下面方法

Intent.getClass(Context packageContext,Class <?> cls);

2.调用 Intent

Activity.startActivity( Intent intent);

如果 想下一个Activity时返回原来 的activity ,则

Activity.startActivityForResult (Intent intent ,int requestCode );


note :应用中的activity都要在 manifest文件中注册。


二. 使用activity传递数据 

1. 在第一个activity中存入 数据 ,

Intent.putExra( String name ,String value );

name value 类似于键 值对应的,如HashMap ,name =key。不过这里它们的类型是Bundle(专门为activity面设计 的,本质 是HashMap的再封装。

2.在目标activity中取出intent中的值 

先用getIntent();得到intent对象。再

Intent.getExtras() ;

得到的是一个Bundle对象。

Bundle.getString( String key )

从而得到里面的key对应的 数据 。


三。如果要返回

steps:

1.  Activity.startActivityForResult( Intent intent ,int requestCode )

第二个参数 是请求码,用来标识 这次请求

2. 在onActivityResult 中,我们对返回的结果 进行处理。

protected void onActivityResult (int requesCode, int resultCode ,Intent data){

super.onActivityResult(...);

}

参数1:请求码,标识本次结果对应那个请求。

参数2:结果码,两种  。

RESULT_OK =-1:本次操作成功,则返回这个 

RESUKT_CANCELLED = 0:操作取消,返回这个值 。

还有一个是 1  。自己定义 不要与之重复。

结果码除了可以用来区分 操作是否成功,还可以 区分 是由那个activity 返回的 。

参数3 :可以用  Intent.getExtras() 得到返回的值。

3.在目标activity中new 一个 Intent 对象,不用指定要跳转的activity 

   再使用 Intent.putExtras(Bundle bundle) 将数据与intent 绑定。

4.将intent 传入到结果 中,用

Activity.setResult( int requestCode, Intent data );

5 .调用 finish()。

结束本activity ,系统 会自动 调用 之前 的onActivityResult ().



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值