2024年3月14日发(作者:)

Android接受多页面回传值

startActivityForResult和onActivityResult详解

方法:startActivityForResult(发送请求),setResult(回传结果);

onActivityResult(接收结果)

startActivityForResult顾名思义为:为了获取结果开启activity页面,所以,和

startActivity不同的是,startActivity新开的页面,回传值不能关闭新开的页面,同时,

不能用于同一个页面接收多个页面传回来的值。

startActivityForResult(intent, 2);里面包括了,请求码2,也就是有个带着

requestCode指令2到intent这个新页面去拿值,只要intent这个页面回传时:用

setResult(3,intentMain);回传到需要取值的页面,也就是带着3这个resultCode回传回

刚才的intentMain页面,回传后,随便可以关闭这个新开intent的页面也是可以的。这

样结果就回到需要值的那个intentMain页面上了。

然后,回传到了intentMain这个页面上的值,需要获取,怎么获取呢?

这时:用onActivityResult(这个是继承Activity,所覆盖的方法)

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch(requestCode){

case 1:

Bundle bundle = ras();

n("requestCode:"+requestCode);

n("resultCode:"+resultCode);

n("A页面:"+ing("name_1"));

break;

case 2:

n("requestCode:"+requestCode);

n("resultCode:"+resultCode);

n("B页面:"+ingExtra("name_2"));

break;

default:

break;

}