现在的位置: 首页 > 综合 > 正文

android StartActivityForResult()方法详解

2014年01月30日 ⁄ 综合 ⁄ 共 798字 ⁄ 字号 评论关闭

startActivity方法的参数是intent,用于acitivity之间的普通跳转

但是当一个activity跳转至多个activity,并且需要从这些activity中或许相关的数据的时候,我们需要使用startctivityForResult方法,该方法的参数是Intent对象,指明要跳转的activity对象,第二个是request code,这可以在回调的时候判断从哪个activity中回调过来的,相当语给这些activity标上一些标志。回调的时候根据这些request来判断actiivty。那么用该方法跳转的activity在finish的时候都会回调原来activity的onActivityResult方法,那么你如果想从目标activity获取数据的话,就必须在目标activityfinish之前new一个intent,并且把这个activity中你想要的东西放入这个intent中,肯定需要一个方法,那么这个方法就是setResult方法,参数是resultCode和intent对象。那么这个resultCode和request的作用相似,因为你在原来的activity里可能会在程序的两个不同的地方跳转到同一个activity类的两个对象,那么这个时候requestCode作用就来区分。那么你在目标activity中也可能会从两个不同地方finish,那么这个时候resultCode的作用就是区分这些地方。

那么最重要的还是原来activity中的onActivityResult方法了,参数分别是requstCode,resultCode,和intent对象,在内部可以用switch结构来对不同的回调进行区分并且分别进行处理,传送过来的数据就存储在intent对象中。从中取出相应的数据并可以获取数据了。

这是通过回调机制来实现activity之间的通信的。

抱歉!评论已关闭.