Android之Activity之间的跳转

向Activity传递数据

数据传递

  • 在Android开发中,经常要在Activity之间传递数据。使用Intent传递数据只需调用putExtra()方法将想要存储的数据存在Intent中即可。当启动了另一个Activity后,再把这些数据从Intent中取出即可。 

  • 在Activity01中将数据存储在Intent中

        String data = "Hello Activity02"

        Intent intent = new Intent(this,Activity02.class);

        intent.putExtra("extra_data",data);

        startActivity(intent);

  • 从Activity02中取出传递过来的数据 

        Intent intent = getIntent();

        String data  = intent.getStringExtra("extra_data");

        Log.i("Activity02", data);

  • 还有一种传递数据的方式是调用putExtras()方法传递数据,该方法传递的是Bundle对象。调用putExtras()方法传递数据可以使用如下代码:

        Bundle bundle = new Bundle();

        bundle.putString("name", "Linda");

        bundle.putInt("age",  20);

        Intent intent = new Intent(this,Activity02.class);

        intent.putExtras(bundle);

        startActivity(intent);

  • 如果想要在Activity02中取出上述方式传递的数据,可以使用如下代码:

        Intent intent = getIntent();

        Bundle bundle = intent.getExtras();

        String stuName = bundle.getString("name");

        int stuAge = bundle.getString("age");

Activity之间的数据回传

微博发布页面选择图片后,会回到微博发布页面并回传了图片选择页面的图片信息。其实这种效果是通过Andorid中的startActivityForResult()方法实现的。

        startActivityForResult()示例代码如下:

        Intent intent = new Intent(this,Activity02.class);

        startActivityForResult(intent,1);

  • 在Activity02中添加数据返回的示例代码,具体如下所示:

        Intent intent = new Intent();

        intent.putExtra("extra_data","Hello Activity01");

        setResult(1,intent);

        finish();

  • 由于使用了startActivityForResult()方法启动Activity02,因此会在Actiivity01页面回调onActivityResult()方法,需要在Activity01中重写该方法来获取返回的数据 

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

        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == 1) {

             String data = data.getStringExtra("extra_data");

             Log.i("Activity01",data);

        }

        }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值