当SecondActivity需要回传参数时:
1. MainActivity启动SecondActivity时需要调用startActivityForResult()
并定义请求码
2. SecondActivity在合适的使用调用setResult()设置返回码和返回的参数
然后调用finish()结束当前Activity
3. MainActivity需要重写onActivityResult()捕获SecondActivity返回的结果

常用的返回码为:
RESULT_OK 成功
RESULT_CANCEL 失败
RESULT_FIRST_USER 用户自定义的返回码
RESULT_FIRST_USER + 1
RESULT_FIRST_USER + 2
……

MainActivity:

package com.example.day06_activity5;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void btn_click(View view) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
// 期待SecondActivity会传递参数回来
startActivityForResult(intent, 8);
} // 重写onActivityResult() 捕获SecondActivity返回的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 8 && resultCode == RESULT_OK) {
String name = data.getStringExtra("name");
int age = data.getIntExtra("age", 0);
double weight = data.getDoubleExtra("weight", 0.0);
Toast.makeText(MainActivity.this,
"姓名:" + name + ", 年龄:" + age + ", 体重:" + weight,
Toast.LENGTH_LONG).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
}

SecondActivity:

package com.example.day06_activity5;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; public class SecondActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
} public void btn_click_return(View view) {
// 传递参数回去
// 返回码有如下值:
// RESULT_OK 成功
// RESULT_CANCEL 失败
// RESULT_FIRST_USER 用户自定义的返回码
Intent data = new Intent();
data.putExtra("name", "放远");
data.putExtra("age", 58);
data.putExtra("weight", 555.5);
setResult(RESULT_OK, data);
// 退出当前Activity
finish();
}
}

Android_Intent_passValueForResult的更多相关文章

随机推荐

  1. 【HDOJ】4057 Rescue the Rabbit

    挺有意思的一道题目,解法是AC自动机+DP.AC自动机建立fail指针时,一定要注意结点的属性也需要传递.AC自动机结合了trie和kmp的优点.需要注意的是,每个模式串仅计算一次,否则这题很难解. ...

  2. poj2817WordStack(状压)

    链接 与上题类似  预处理一下各字符串之间最大的相同字符数就可以 注意dp要初始为负无穷 #include <iostream> #include<cstdio> #inclu ...

  3. 使用Visual Studio进行单元测试

    一.使用Visual Studio进行单元测试的几个建议 1.先写单元测试(依我愚见,应该是接口先行,如果有的话) -> 测试失败 -> 以最小的改动(即编写实际代码)使测试通过(而在VS ...

  4. BZOJ_1778_[Usaco2010_Hol]_Dotp_驱逐猪猡_(期望动态规划+高斯消元+矩阵)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1778 炸弹从1出发,有\(\frac{P}{Q}\)的概率爆炸,如果不爆炸,等概率移动到连通的 ...

  5. Micro 消息

    上周,微软与计算机历史博物馆合作,发布了MS-DOS 1.1/2.0和Word for Windows 1.1a版本的源码,这是微软首次将其核心产品开源. MS-DOS MS-DOS是微软于1981年 ...

  6. JAVASCRIPT中RegExp.$1是什么意思

    RegExp 是javascript中的一个内置对象.为正则表达式. RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp. ...

  7. jquery 列求和

    列求和 var m = 0; $('#tb tr').each(function () { //td:eq(3)从0开始计数 $(this).find('td:eq(3)').each(functio ...

  8. [liu yanling]测试小结

    编写测试用例,业务了解是基础,结合业务编写测试用例,重要的逻辑一定要覆盖

  9. [摘]selenium-ide编辑命令

    ----//编辑命令 selenium为我们录制的脚本不是100%符合我们的需求的,所以,编辑录制的脚本是必不可少的工作. 1.  编辑一行命令或注释. 在Table标签下选中某一行命令,命令由com ...

  10. [TOP]疯狂的投资

    [TOP]疯狂的投资 这是罗辑思维一期<疯狂的投资>的节目笔记,这期主要是通过菲尔德铺设横跨大西洋的电缆的故事讲了创业者需要的特质和<二十一世纪资本论>的一个观念:随着自由市场 ...