Android starActivityForResult浅析

startActivityForResult浅析

在Android开发中难免要完成Activity的跳转操作,常见的跳转方式为starActivity。但是有时候开发需要从另一个Activity中获得相应的值。实际上这个操作也很简单的,只需调用startActivityForResult即可,然后重写其中的onActivityResult即可。

请求跳转的Activity中的方法

在这个Activity中首先也是声明一个Intent。因为无论是何种开启Activity的方式都需要Intent,Intent翻译过来就是信使的意思从这个翻译中就能很好的理解它的意思了。代码片段如下:

private static final int REQUEST_CODE = 1;
startActivityForResult(intent, REQUEST_CODE);

其中REQUEST_CODE是我们定义的一个常量,一般会定义为大于0的整形数值。REQUEST_CODE我理解就相当于暗号一样就是请求码,接受请求的Activity就是通过请求码来进行识别请求的。这里发出请求的Activity还必须重写onActivityResult方法,通过这个方法来获得另外一个Activity的返回值,其中代码片段如下:

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        tv_name.setText(data.getStringExtra("name"));
    }

其中第一个参数就是请求码,第二个为结果码有时候我们也可以通过结果码来区分返回的结果。第三个是请求的Activity的返回结果,我们可以通过Intent类型data来获取我们想要的值。

接受请求Activity中的方法

接受请求返回结果值得Activity写法就简单了,我们只要setResult就行了。具体代码片段如下:

final Intent intent = new Intent();
intent.putExtra("name", name);
NextActivity.this.setResult(RESULT_OK, intent);
NextActivity.this.finish();

同样我们也需要Intent这个信使组件,然后在Intent中放入相应的值即可。然后调用setResult方法,该方法中第一个参数为Android帮我们定义好的RESULT_OK这个实际也是个常量,第二个参数就是Intent。这里强调一点的是setResult一定要在Activity的finish方法前调用,否则是无效的。好了这样就完成了一个Activity从另一个Activity中获得值得跳转,这是我的个人浅显理解如果有错误还请指教,以后会继续完善这个博客的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值