Activity间用Intent、Bundle、onActivityResult进行传值
其实Activity间的传值就是通过Bundle,intent中也是自动生成了Bundle来传值,里面还有个onActivityResult()方法也可以传送数值。
如果一个Activity是由startActivityForResult启动的,那么这个activity在finish()后就会回调启动它的activity中的onActivityResult()方法。
下面是全部代码:
MainActivity.java
package com.kale.activity; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//intent这时里面还没有bundle对象,所以系统会自动生成一个bundle对象,把数据放入bundle,然后把bundle给intent
intent.putExtra("KEY", "VALUE");
Bundle bundle = new Bundle();
bundle.putString("KEY from bundle", "VALUE from bundle");
intent.putExtras(bundle);
/*只要你是startActivityForResult(intent, INVITE_CODE);
这个方法启动的Activity2,当你finish()Activity2的时候 ,
返回到Activity1中,它会自动调用onActivityResult这个方法,
然后你要传递的数据就在这发方法的Intent参数里面*/
startActivityForResult(intent, 123);
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String result = data.getExtras().getString("requestKEY");//得到新Activity 关闭后返回的数据
System.out.println("返回的结果是:"+result);
}
}
SecondActivity.java
package com.kale.activity; import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity; public class SecondActivity extends ActionBarActivity{ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Intent intent = getIntent(); System.out.println("value0 = "+intent.getStringExtra("KEY"));
Bundle bundle = intent.getExtras();
String value01 = bundle.getString("KEY");
String value02 = bundle.getString("KEY from bundle");
System.out.println("value01 = "+value01);
System.out.println("value02 = "+value02); Intent resultIntent = new Intent();
resultIntent.putExtra("requestKEY", "requestValue");
//设置返回数据
setResult(RESULT_OK, resultIntent);//设置给之前启动它的activity的一个返回码
finish();
} }
Activity间用Intent、Bundle、onActivityResult进行传值的更多相关文章
- Activity间通过Intent交互及系统服务调用
I. 实验目的通过本实验理解Android开发框架中最核心程序部件Activity间通过Intent交互的原理,掌握通过Intent传递参数和系统服务调用的方法,并通过实验中的3个具体的实验内容加深理 ...
- 使用Bundle在Activity间传递数据
使用Bundle在Activity间传递数据 源Activity public class SourceActivty extends Activity { private Intent intent ...
- Activity间中使用Intent传值
主页面用来输入一个值传入第二个页面显示,关闭第二个页面返回一个值 主页布局: <RelativeLayout xmlns:android="http://schemas.android ...
- Activity学习(三)——跳转传值
Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据. Intent是Android一个很重要的类.Intent直译是“意图”,什么是意图呢?比如你想从这个 ...
- Android Activity间跳转与传递数据
1 概述 Activity之间的跳转主要使用 startActivity(Intent intent); startActivityForResult(Intent intent,int reques ...
- 利用Theme自定义Activity间的切换动画
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/22990643 大多Android系统默认Activity间的动画切换效果为,右边 ...
- Activity之间数据交流(onActivityResult的用法)
http://www.blogjava.net/mixer-a/archive/2012/03/23/375014.html http://www.cnblogs.com/linjiqin/archi ...
- Activity之间使用intent传递大量数据带来问题总结
转载:大飞 http://blog.csdn.net/rflyee/article/details/47441405 Activity之间使用Parcel传递大量数据产生的问题. Activity ...
- Activity间传递数据
1.从当前的Activity传递数据到下一个Activity: (1)发送方(当前的Activity): Bundle bundle = new Bundle(); bundle.putString ...
随机推荐
- NET MVC Bundling and RequireJS
NET MVC Bundling and RequireJS 高手速来围观帮忙解惑~关于ASP.NET MVC Bundling and RequireJS的取舍问题,最近比较困惑,我希望有一种方 ...
- PHP 导出简单文本内容(word txt等)
PHP导出word文件,简单拓展可导出其他文本类文件 /** * PHP 导出简单文本内容(word txt等) * @param $content mixed 导出内容 (文本string / ht ...
- 【LeetCode】287. Find the Duplicate Number
Difficulty:medium More:[目录]LeetCode Java实现 Description Given an array nums containing n + 1 integer ...
- js 高阶函数(map/reduce/filter/sort)
1.map - 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(注:map不会对空数组进行检测,不会改变原始数组) 语法:array.map(function(currentValu ...
- 006.Zabbix添加监控主机
一 配置步骤和流程 Zabbix完整的监控配置流程可以简单的描述为: Host groups(主机组)---->Hosts(主机)---->Applications(监控项组)----&g ...
- JavaScript 对象Array,Map,Set使用
for(int i = 0 :i < 3 ;i++ ){ //[重点说三遍] 在说明每个对象的用法之前,首先说明 JavaScript 对象的使用一定要注意浏览器的兼容性问题!尤其是IE的版本! ...
- AI技术在智能海报设计中的应用
背景 在视觉设计领域中,设计师们往往会因为一些简单需求付出相当多的时间,比如修改文案内容,设计简单的海报版式,针对不同机型.展位的多尺寸拓展等.这些工作需要耗费大量的时间.人力成本(5~6张/人日), ...
- KVM源代码阅读--内核版本3.17.4
为了更加深入的学习虚拟化,因此我必须把KVM源代码搞清楚,这是一个必须要挖的坑.我会把自己的一些阅读的代码贴上来,可能会有理解不对的地方,希望和大家一起交流,请多提意见,以便于纠正错误.所用的内核版本 ...
- MAC下安装Brew[转]
MAC下安装Brew 1.安装XCode xcode-select --install 2.安装HomeBrew ruby -e "$(curl -fsSL https://raw.gith ...
- BZOJ 3245: 最快路线 spfa
3245: 最快路线 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3245 Description 精明的小R每每开车出行总是喜欢走最快 ...