一、startActivity( )
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
二、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
1、在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这样的数据交流就要用到主Activity回调函数onActivityResult()。
一些方法:
<1>主Activity里面传递一个Intent对象,给即将打开的子Activity,并用requestCode区分打开哪个子Activity
{
startActivityForResult(Intent intent, int requestCode);
第一个参数Intent intent: 一个Intent对象;
第二个参数int requestCode:>= 0,当主Activity结束时requestCode将归还在onActivityResult()中。以便确定返回的数据是从哪个Activity中返回
}
<2>主Activity里重写这个方法,接收子Activity收传入的Intent的对象,主Activity既可以通过switch/case语句用requestCode 来区分不同的子Activity,也可以通过resultCode来区分
{
onActivityResult(int requestCode, int resultCode, Intent data);
int requestCode: 这个整数requestCode提供给onActivityResult,是以便确认返回的数据是从哪个Activity返回的。这个requestCode 和startActivityForResult中的requestCode相对应;
int resultCode: 由子Activity通过其setResult()方法返回;
Intent data: 一个Intent对象,带有返回的数据
}
<3>子Activity调用这个方法把数据返回到主Activity,同时也返回区分自己的resultCode
{
setResult(int resultCode, Intent data);
int resultCode: 当子Activity结束时resultCode将归还在主Activity的onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK。
Intent data: 一个Intent对象,返回给父Activity的数据
}