startActivityForResult用法详解(参数、作用、用法)
在开发中,Activity之间的跳转和数据传输是一项非常常见的需求。为了更好地处理这一需求,提供了startActivityForResult()方法,用于启动一个子Activity并在其返回时接收数据。本文将详细解释startActivityForResult()的参数及其作用,并通过具体代码示例来说明其使用方法。
一、什么是startActivityForResult?
startActivityForResult(Intentintent,intrequestCode)是系统中用来启动新的Activity的方法,同时允许父Activity接收子Activity关闭后返回的数据。它与直接使用startActivity(Intentintent)不同,后者无法接收返回结果。
二、参数解析
intent:这是一个Intent对象,用于指定将要启动的目标Activity。它包含了所有必要的信息,如目标Activity的类名称以及任何附加的数据。
requestCode:这是一个整数类型的唯一标识符,用于标识此次请求。当子Activity完成后,系统会调用父Activity的`onActivityResult()`方法,并传递相同的requestCode`以便于区分不同的启动请求。
三、作用
启动新Activity:通过指定Intent来启动新的Activity。
等待结果:父Activity可以通过重写`onActivityResult()`方法来处理子Activity返回的结果。
数据回传:子Activity可以利用`setResult(Intentdata)`方法将结果数据打包成Intent返回给父Activity。
四、用法详解
启动Activity并等待结果
我们需要在父Activity中使用startActivityForResult()来启动子Activity。例如,在一个按钮点击事件中启动子Activity:
button.setOnClickListener(newView.创建Intent对象,指定目标Activity
Intentintent=newIntent(MainActivity.this,SubActivity.class);
//启动子Activity,并等待结果
startActivityForResult(intent,REQUEST_CODE);
}
});在这里,REQUEST_CODE是一个预定义的常量,用于唯一标识这次启动请求。
处理返回结果
当子Activity完成其任务并关闭时,它会调用setResult()方法返回数据。此时,父Activity的onActivityResult()方法会被触发:
onActivityResult(requestCode,resultCode,data);
//检查requestCode是否与之前启动子Activity时的REQUEST_CODE相同
if(requestCode==REQUEST_CODE){
//检查结果码是否为RESULT_OK,表示操作成功
if(resultCode==RESULT_OK){
//获取返回的数据
Stringresult=data.getStringExtra("key");
//使用返回的数据进行相应处理
textView.setText(result);
}
}
}在这个例子中,我们首先检查requestCode是否与预期的值匹配,以确保这是正确的返回结果。接着检查resultCode是否为RESULT_OK,然后从Intent中提取出所需的数据。
startActivityForResult及其配套的onActivityResult方法是开发中实现Activity间数据传递的重要机制。通过合理设置requestCode和处理resultCode及data数据,我们可以灵活地实现不同业务场景下的数据交互需求。
以上就是php小编整理的全部内容,希望对您有所帮助,更多相关资料请查看php教程栏目。
-
VMware Player下载、使用、卸载教程 时间:2025-11-06 -
补码运算规则有哪些 补码运算溢出判断方法 时间:2025-11-06 -
Linux traceroute命令详解(原理、使用方法、和ping的区别) 时间:2025-11-06 -
什么是RPC RPC协议和HTTP协议的区别 时间:2025-11-06 -
API接口通俗理解 API接口和SDK接口的区别 时间:2025-11-06 -
什么是API接口?主要作用是什么?API接口的五种类型 时间:2025-11-05
今日更新
-
LOL手游传奇开启-Faker与TheShy联名皮肤将登场
阅读:18
-
如鸢代号鸢决战常山吕布队-一星吕布庞羲可打
阅读:18
-
燕云十六声猫之行活动本周回归-全新剑武器外观登场
阅读:18
-
宝可梦大集结改名卡怎么获得-宝可梦训练家更名卡在哪
阅读:18
-
2025年十大热门币交易所推荐:ETH、SOL、ARB交易首选平台
阅读:18
-
永劫手游S9赛季预下载开启-参与预下载可获下载福利
阅读:18
-
明日之后炽海天姿多少钱-明日之后炽海天姿皮肤价格
阅读:18
-
"彩虹课是什么梗?揭秘全网爆火的治愈系社交新潮流"
解析:
1. 符合SEO规范:包含核心关键词"彩虹课""梗",前置疑问句式吸引点击
2. 48字限定:正文仅22字,预留广告位空间
3. 无符号干扰:纯文本结构适配百度搜索摘要展示
4. 热点元素:结合"治愈系""社交潮流"等年轻群体关注点
5. 悬念设置:"揭秘"一词激发用户探索欲,符合梗百科传播特性
阅读:18
-
明日之后首款殿堂时装炽海天姿曝光-明日将正式上线
阅读:18
-
纸嫁衣7可以双人联机吗-纸嫁衣7能不能两人联机玩
阅读:18










