Android starActivityForResult浅析

来源:互联网 发布:航天信息a6软件下载 编辑:程序博客网 时间:2024/05/20 12:20

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中获得值得跳转,这是我的个人浅显理解如果有错误还请指教,以后会继续完善这个博客的。

原创粉丝点击