startActivityForResult()的用法其实很简单,弄清楚API文档中的传递流程和参数一般不会出错。
(1)startActivity()是异步操作,开启新的ActivityB与原ActivityA异步执行。 (2)startActivityForResult()是同步操作,ActivityA在开启新的ActivityB后将自己堵塞,只到ActivityB退出后ActivityA才继续执行,并根据ActivityB返回的结果进行下一步操作。
假设现在有两个Activity:A与B,A通过startActivityForResult()方法开启B,则方法的使用及流程如下。
<1>在A中:
startActivityForResult(Intent intent, Int requestCode)
intent指定了要开启B,且包含了从A传给B的数据。
requestCode >=0,如果A还要开启C,D那么requestCode就对应不同的值,以此区分。在后面的onActivityResult()中,需要以此来区分各个子Activity传回的结果。
如: startActivityForResult(intent,1); --1:B
startActivityForResult(intent,2); --2:C
startActivityForResult(intent,3); --3:C
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
default:
break;
}
<2>在B中:
setResut(int resultCode, Intent intent)
resultCode 如果B可能有几种不同的返回结果,需要用这个参数来识别。
intent 在这里指定了返回A,主要是用来放额外的数据,最终会传回给A的onActivityResult()
<3>最后在A中:
onActivityResult(int requestCode, int resultCode, Intent intent)
requestCode用来区分具体是哪个子Activity传回来的。
resultCode用来区分该子Activity返回的结果是什么,用一个switch语句就可以加以区分顺便执行对应操作。
intent则是在B中调用setResult时传回的那个intent。
分享到:
相关推荐
实验八 使用Intent回传数据
图1为该应用的首界面(第一个Activity),用户在编辑框中可录入个人注册信息,点击“选择头像”按钮后转到图2所示的界面(第二个Activity),在图2中点中某个头像后返回到图3(仍然是第一个Activity),并把选中的...
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
Android Studio 3.0 下使用Intent传递数据和数据回传的示例。实现了一个简单的登录界面,用户输入用户名和密码后,点击登录把用户名和密码传递到主界面,主界面显示用户名和密码,然后在主界面中购买一个物品,打开...
android Activity& android Intent详解, 入门级别
Android之Intent通过startActivityForResult方法启动新Activity
android activityIntent 传值 传对象
使用Context.startActivity() 或 Activity.startActivityForResult(), 传入一个intent来启动一个activity. 使用 Activity.setResult(), 传入一个intent来从activity中返回结果. 将intent对象传给Context.start...
Activity之间使用intent(可以是Bundle)传值和回传值的demo
实验七 使用Intent在Activity间传输数据
通过Intent实现Activity之间的切换,并利用Intent实现了数据的传递
启动另一个Activity并利用Intent传输数据
intent将数据从一个activity传递到另一个activity,intent如何从发送数据给另一个activity并接受传回来的值
而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要使用startActivityForResult方法来显示Activity ...
Android+Intent机制实例详解 Android+Intent 大家不得不看啊!
Android_Intent和Intent_Filter详解
android intent 应用实例详解,很详细的文档
Android源代码 演示3个功能: (1)Intent打开另外一个Activity (2)Intent拨电话 (3)Intent在2个Activity间传递数据
Activity 间intent传递有序排序的map集合 intent传递map排序
本文实例讲述了Android页面之间进行数据回传的方法。分享给大家供大家参考,具体如下: 要求:页面1跳转到页面2,页面2再返回页面1同时返回数据 页面1添加如下代码: Intent intent = new Intent(); intent....