Android_Intent_passValueForResult
当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的更多相关文章
随机推荐
- 【PythonChallenge】Level 5
题目主要找发声类似于Peak Hell的Python模块,查了一下手册pickle已经是最像的了.看了一下源代码,发现panner.p.如同发现了新大陆,拷贝内容.使用pickle解答.答案为chan ...
- WIP Job > APP-WIP-25191 or Pending Close
使用 Close Discrete Jobs (FORM) 关闭工单,有一工单的状态一直为PENDING CLOSE 检查 PENDING MATERIAL TRANSACTION ,PENDING ...
- hadoop运行流程分析源代码级
前言: 最近一直在分析hadoop的运行流程,我们查阅了大量的资料,虽然从感性上对这个流程有了一个认识但是我总是感觉对mapreduce的运行还是没有一个全面的认识,所以决定从源代码级别对mapred ...
- 转:Apache和Nginx运行原理解析
Web服务器 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. 应用层使用HTTP协议. HTML文档格式. 浏览器统一资源定位器(URL). Web服 ...
- 函数page_rec_get_next_const
/************************************************************//** Gets the pointer to the next recor ...
- 使用Visual Studio进行单元测试
一.使用Visual Studio进行单元测试的几个建议 1.先写单元测试(依我愚见,应该是接口先行,如果有的话) -> 测试失败 -> 以最小的改动(即编写实际代码)使测试通过(而在VS ...
- Samba ‘dcerpc_read_ncacn_packet_done’函数缓冲区溢出漏洞
漏洞名称: Samba ‘dcerpc_read_ncacn_packet_done’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201312-169 发布时间: 2013-12-12 更新时间 ...
- [Irving] Android 点击两次返回退出系统
Activity 中定义成员变量: private Long firstClickTime = 0l; //记录第一次点击时间 重载OnKeyDown方法 代码: @Override public b ...
- Git分支管理的基本操作
首先从远端版本库clone下来一个全新的库: git clone username@xxx:/xxx/xxx.git 此时clone下来的,只是master分支,没有其他分支. 查看分支: git b ...
- java含多个包的命令行下执行
C:\Users\liyang\Desktop\BAE\Baidu-BCS-SDK-Java-1.4.5>java -classpath(可以cp简写) bcs-sdk-java_1.4.5.j ...