Android|Android startActivity()和onActivityResult()使用总结
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
有三个Activity: A.java ,B.java ,C.java
Activity之间的跳转常用方法:
1. startActivity(Intent intent);
该方法只用于启动新的Activity
2.startActivityForResult(Intent intent, int requestCode);
该方法做两件事:一.启动新的Activity二.回收启动的Activity返回的结果
(1)A.java中
startActivityForResult(Intent intent, int requestCode);
requestCode:是自定义的int型常量, requestCode >=0。
例:
if(条件){
Intent intent = new Intent(this, B.class);
startActivityForResult(intent, REQUEST_CODE_01);
//跳转至B.java
}else{
Intent intent = new Intent(this, C.class);
startActivityForResult(intent, REQUEST_CODE_02);
//跳转至C.java
}
【Android|Android startActivity()和onActivityResult()使用总结】
(2)B.java 或者C.java
setResut(int resultCode, Intent intent)
resultCode:用于标识B.java几种不同的返回结果。没有特殊情况时,用RESULT_OK。
例:
Intent intent = new Intent();
intent.putExtra(key, value);
// 或者将数据打包到Bundle
setResult(RESULT_OK, intent);
(3)A.java
onActivityResult(int requestCode, int resultCode, Intent data)
requestCode: 用于区分哪个子模块回传的数据。
data: 回传的数据。
Bundle b = data.getExtras();
String str = b.getString("string");
resultCode: 与setResult()中相对应
例:
public void onActivityResult(int requestCode, int resultCode, Intent data){
switch (requestCode) {
case REQUEST_CODE_01:
if(resultCode==Activity.RESULT_OK)
//do something
break;
case REQUEST_CODE_02:
//do something
break;
}
}
转载于:https://my.oschina.net/u/1858156/blog/311927
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- android第三方框架(五)ButterKnife
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理