StartActivityForResult用法
当我们在第一个Activity打开到第二个Activity,第二个Activity返回数据给第一个Activity时,我们需要在第一个Activity重写 public void onActivityResult(int requestCode, int resultCode, Intent data) 方法。
使用步骤详解
1、首先在第一个Activity调用startActivityForResult方法:
2、在第二个Activity中用setResult方法设置返回值:
3、在第一个Activity中重写onActivityResult方法,数据可以从data中获取:
备注:
requestCode作用
使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult()方法传入一个请求码(第二个参数)。请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出相应的业务处理,这时可以这样做:
resultCode作用
在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(SecondActivity和ThirdActivity为要打开的新Activity):