Android:Activity中的数据传递

来源:互联网 发布:广发手机证券交易软件 编辑:程序博客网 时间:2024/06/05 08:20

在安卓开发中,经常要在activity之间传递数据,Intent可以用来开启activity,也可以用来在activity之间传递数据。

使用Intent传递数据只需调用putExtra()方法将想要存储的数据存在Intent中即可。当启动了另一个activity后,再把这些数据从Intent中取出即可。例如,Activity01中存储了一个字符串,现在要将这个字符串传递到Activity02中,可以使用如下代码:

String data = "Hello Activity02"Intent intent = new Intent(this,Activity02.class);intent.putExtra("extra_data",data);startActivity(intent);


在上述代码中,通过显式意图开启Activity02,并通过putExtra()方法传递了一个字符串data。putExtra()方法中第一个参数接收的是key,第二个参数接收的是value。

如果想要在activity02中取出传递过来的数据,可以使用如下代码:

Intent intent = getIntent();String data == intent.getStringExtra("extra_data");log.i("Activity02",data);


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

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");


在上述代码中,在接收Bundle对象封装的数据时,需要先创建对应的Bundle对象,然后再根据存入的key值取出value。其实用Intent传递数据以及对象时,它的内部也是调用了Bundle对象相应的put()方法,也就是说Intent内部也是用Bundle来实现数据传递的,只是封装了一层而已。

 

原创粉丝点击