一. 使用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 ().