Android笔记——startActivityForResult使用

主要功能:两个Activity:A和B,从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求将数据封装起来回传给A并跳转回A。

通常我们转换Activity时常用到的是startActivity(intent);但是这样不能传递一些数据,所以使用startActivityForResult(Intent intent,int requestCode)方法。

第一步:由A到B ,在A的Activity中使用startActivityForResult(Intent intent, requestCode)方法,如:在A中有

                Intent intent = new Intent(A.this,B.class);//由A转向B
                intent.putExtra("msg", "hello");//传递的一个消息
                startActivityForResult(intent,0); //参数1为requestCode,这个参数值可以自己设置,主要是为后面的onActivityResult()对应识别所用

第二步:在B中,

              Intent aintent = new Intent(B.this, A.class); //B转向A

              setResult(1); //这里的参数1为resultCode,也就是在B中要返回给A的数据

              finish(); // 把打包好的数据发给A且运行onActivityResult()部分的代码

第三步:在A中运行onActivityResult()方法

            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == 0) {
                     if (resultCode == 1) {
                               ……进行一些操作;

                               Bundle b=data.getExtras();  //data为B中回传的Intent

String str=b.getString("msg"); //得到传递的参数


                     }

                  }       



               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值