Activity跳转&Bundle传递数据

Activity的跳转方式有两种:

1.startActivity(Intent intent),直接启动其他Activity

btnChange = (Button)findViewById(R.id.btnChange);
btnChange.setOnClickListener(new OnClickListener(){

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		Intent mIntent = new Intent();
		mIntent.setClass(MainActivity.this, AnotherActivity.class);
		startActivity(mIntent);
	}});

2.startActivityForResult(Intent intent,int requestCode),以指定的请求码启动Activity,并本程序在启动新Activity后会调用onActivityResult获取新的Activity传递回来的结果

2.1-Bundle:putExtras(Bundle data)/getExtras()、putExtra(String name,Xxx value)/getXxxExtra(String name)

I.MainActivity中的btn调用startActivityForResult:

btnChange = (Button)findViewById(R.id.btnChange);
btnChange.setOnClickListener(new OnClickListener(){

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		Intent mIntent = new Intent(MainActivity.this, AnotherActivity.class);
		startActivityForResult(mIntent,0);
	}});

II.MainActivity中重写onActivityResult监听返回的数据

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
	if(requestCode == 1 && resultCode == 1){
		Bundle data = intent.getExtras();
		//result为AnotherActivity回传的key为Name的value
		String result = data.getString("Name");
	}
}

III.在AnotherActivity中发送数据

btnSend = (Button) findViewById(R.id.btnSend);
btnSend.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		Intent intent = getIntent();
		intent.putExtra("Name", "John");
		//设置ResultCode
		AnotherActivity.this.setResult(0);
		AnotherActivity.this.finish();
	}
});
时间: 2024-10-05 15:08:06

Activity跳转&Bundle传递数据的相关文章

如何使用 Bundle 传递数据?

如何使用 Bundle  传递数据? 最近在学习Android的时候,不知道 如何使用Bunndle传递对象? 我们可以通过 Serizlizable 实现.本质就是 将 自定义的对象,转化为 Serizliable 对象. 之后在用的时候 再取出来. 存数据 Void  putSerializable(String key,Serializble value); 取数据: Serializanle getSerizlizble(String key); 代码:  mianActivity.ja

ios 页面跳转之间传递数据----通过delegate

主要参考了这篇博客http://mobile.51cto.com/iphone-284116.htm 主要用到了,两个类,一个delegate a类,调用b类,当b类执行之后,需要把一个数据传递给a类,a类把这个数据显示出来. 1.delegate,就这一个头文件就足够了.在类中去实现这个代理方法 #import <Foundation/Foundation.h> @protocolUIViewPassValueDelegate - (void)passValue:(NSString*)val

【Android】多个Activity之间利用bundle传递数值

安卓中的Activity相当于vb,mfc中的窗体,在多个Activity之间传递数据是一个相当核心的功能.下面举个例子来说明这个问题. 一.基本目标 用户在两个输入框中输入用户名.密码之后,跳到另一个Activity当中,显示其输入的内容, 然后这两个Activity能够轻松跳转. 二.制作过程 1.首先MainActivity的登录界面是沿用了<[Android]利用表格布局,Android中xml文件与java的交互制作登录界面>(点击打开链接)的布局,其布局文件activity_mai

Intent界面跳转与传递数据

Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. intent可以激活Activity,服务,广播三类组件. 本博文讲的是显示意图激活Activity组件.所谓显示意图就是在activity的激活时,显示指出了需要激活的activity的名字. 一.Activity跳转 方法一Intent intent = new Intent(A.this, B.class);  startActivity(intent) 方法二Intent intent = n

activity与fragment之间传递数据

总结:无论是activity给fragment传递数据,还是fragment给activity传递数据,都把activity和fragment都当做一个普通的对象,调用它的方法,传递参数. 1.Fragment中通过getActivity()然后进行强制转化,调用Activity中的公有方法 ((XXXXActivity)getActivity()).fun(); 2.Activity在切换Fragment的时候,通过setArguments向Fragment传递参数,Fragment通过get

Activity跳转时传递Bitmap对象的实现

前言 相信大家可能都了解Activity跳转时我们是能够传递參数的,比方使用Intent传递或者Bundle来传递,把当前Activity的一些信息传递给将要跳转到的新的Activity.可是不知道大家有没有想过,我们能不能传递一个Bitmap对象呢?可能有人会问为什么要传递一个Bitmap对象?好吧,由于我在开发中遇到了这种问题才去说说这个. 我前段时间想从网络获取图片显示在ImageView上,当显示好了之后,我希望点击ImageView能够跳转到新的Activity然后显示我点击的图片,所

多activity界面跳转并传递数据

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main&quo

Activity跳转时传递简单数据

一.新建一个空的工程 二.在主界面中添加一个按钮 三.新建一个空的activity,并命名为TheAty 四.修改MainActivity.java中的onCreate函数 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnStartAty).set

[Android] Activity间切换,传递数据

前面照着android系统的裁剪图片的功能自己写了一个相似的工具.功能是大体上实现了,但留下了一个调用的问题:如何从我的程序调用这个裁剪工具,并且获得裁剪后的图片呢? 其实这个也很简单了,就是intent的基础用法. 原文地址请保留http://www.cnblogs.com/rossoneri/p/3998755.html 先上个图(界面依旧没优化,难看就难看吧): 起始activity,打开图片选择窗口,随便选择一张图片 下面是跳转到裁剪界面 按下crop按钮,退出activity,回到原来