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;
}


发布评论