个人理解,如有误解,恳请指导
一.区别( 实现activity 跳转下一个界面主要有两种方法,startActivity()和startActivityforResult() )
1.对于普通的activity A 把数据传入 activity B 界面 用startActivity(),并且无返回数据。
2.startActivityforResult() 可以把 activity A 把数据传入 activity B,并且也可以把activity B中的数据返回activity A 处理。
二.实现
1.我们先看方法系统提供的方法 public void startActivityForResult(Intent intent, int requestCode)方法。
(1) intent 第一个参数是要打开的新activity
(2) requestCode 第二参数为请求码,可以根据业务需求自己编号。
举例:startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1);
2.在为了得到关闭新activity 返回的数据,要在向前面一个activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。
(1) requestCode 请求码,即调用startActivityForResult()传递过去的值
(2) resultCode 结果码,结果码用于标识返回数据来自哪个新Activity
(3) data 当新Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用前面Activity 的onActivityResult()方法,把存放了返回数据的Intent作为第三个输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity返回的数据。
举例:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 1 && resultCode == Activity.RESULT_OK){
String result = data.getExtras().getString("result"); //得到新Activity关闭后的返回数据
Log.i(TAG, result);
}
}