Intent的用法(一),启动activity传递数据以及startActivityForResult

本文介绍了Android中Intent的基本用法,包括如何通过Intent启动新的Activity、传递数据以及使用startActivityForResult()方法。文章通过实例展示了MainActivity和OtherActivity间的交互过程,详细解析了数据传递的代码实现,并探讨了Intent与Bundle在保存数据时的异同。
摘要由CSDN通过智能技术生成

Intent很神奇.可以用Intent来启动新的Activity,启动广播,启动服务,发送数据........太多了.

这里介绍下,使用Intent启动新的Activity,传递数据,以及startActivityForResult()方法的使用.


我们这里有两个Activity,MainActivity.java和OtherActivity.java. 我们需要做的是,点击Button的时候,获取到MainActivity中的用户输入的数据,传递给OtherActivity,在OtherActivity上进行整合后,在传递给MainActivity进行显示.

先看效果如,也就是整个流程:



第一步  从MainActivity跳转到OtherActivity,并将输入的数据传递过去.

代码如下:

			// 将Intent初始化 Intent(packageContext, cls)
			// packageContext指的是当前Activity
			// cls指的是目标Activity
			intent = new Intent(MainActivity.this, OtherActivity.class);
			// 创建Bundle对象用来存放数据,Bundle对象可以理解为数据的载体
			Bundle b = new Bundle();
			// 调用Bundle对象的putString方法,采用 key-value的形式保存数据
			b.putString("name", name.getText().toString());
			b.putString("age", age.getText().toString());
			// 将数据载体BUndle对象放入Intent对象中.
			intent.putExtras(b);
			// 调用startActivityForResult方法
			// startActivityForResult(intent,requestCode);
			// intent,数据载体
			// requestCode 请求的Code,这里一般 大于等于0的整型数据就可以.
			startActivityForResult(intent, 1);

注释已经比较详细了,这里值得一提的是,由于需要OtherActivity返回数据,所以采用了startActivityForResult()的方法,如果不需要返回数据,而是单纯的启动Activity,只需要使用tartActivity();就可以了.


第二步,OtherActivity接收数据,核心代码如下:

		// 获取数据
		mIntent = getIntent();
		Bundle b = mIntent.getExtras();
		// 加载到tv
		tv.setText("输入的姓名是:" + b.getString("name") + "输入的年龄是:"
				+ b.getString("age"));
这里创建一个Bundle对象后,调用getString方法,根据先前设置的key而获取到数据.

第三步,返回数据,这一步可以分为两个部分:


       OtherActivity将需要返回的数据封装,代码如下:

      

			mIntent = new Intent(OtherActivity.this, MainActivity.class);
			Bundle b = new Bundle();
			b.putString("data", tv.getText().toString());
			mIntent.putExtras(b);
			this.setResult(RESULT_OK, mIntent);
			OtherActivity.this.fin
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值