Android学习之路之startActivityForResult和setResult的使用

本文介绍在Android开发中如何使用Intent实现Activity之间的数据传递。通过定义请求码和使用startActivityForResult方法,可以在不同Activity间传递数据并接收返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ntent intent = new Intent(A.this,B.class);
//注意
startActivityForResult(intent,code);
//code为自己定义的对应的值,可以当标识使用,假如有多个按钮要使用这个功能,则判断code即可判断按钮需跳到指定的activity
//需要重写OnActivityResult()方法
protected void onActivityResult(int requestCode,int resultCode,Intent data){
//这里判断code
if(requestCode==code){
//使用resultCode判断返回的值,可以使用data(返回的值)
if(resultCode==B.code)
{
//执行相应的程序
if(resultCode==B.RESULT_CODE!){
edit.setText(data.getStringExtra(name));}
}}}

在开发android的时候,有时候会需要这样的功能,我在Activity A中(简称A)要填写某资料,点击选择按钮,跳转到Activity B(简称B),在B中选择好数据后,B自动消失,A中的编辑框则显示对应的数据。

这是在学习Intent数据传输时一个方法,感觉像Spinner一样,现在就介绍我对以上需求的做法

首先写界面

界面A和界面B,一个是编辑框,一个是数据列表(这里我用的是ListView)

这里需要定义一个常量CODE,可以理解是识别码,判断提交的是哪个按钮还有获取的哪个数据,下面会介绍:

MainActivity中定义REQUEST_CODE,有几个按钮就定义到几,这里我定义REQUEST_CODE1=1;

在button添加监听事件的时候这样写

注意上述代码中是startActivityForResult(intent,RESULT_CODE1);而不是startActivity(intent);这里是区别,注意一下

然后开始写B界面的Activity

这里定义public RESULT_CODE1=1 使用public是为了让A可以调用这个code

//先定义code,方便源activity使用!
public static final int code = 1;
在为B里控件添加监听事件的时候这样写intent
Intent intent = getIntent();
//放数据
intent.putExtraString(key,value);
//注意
setResult(code,intent);
//关闭当前activity
finish();
其他的正常写,在监听事件的时候注意上述代码,setResult(RESULT_CODE1,intent);,还有后面的关闭当前Activity

finish(),没有这句话,则失败
这样就完成了

这次写的不在状态,因为代码不在这台电脑上,都是自己手写的!望见谅

网上有一些介绍serResult()和startActivityForResult()的调用时机,这里不讲这些,这里只是介绍简单的使用,等我什么时候遇到这个问题了,我再自习的为大家讲解!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值