activity中数据的传递方式有2中,一种是使用putExtra()传递,另外一种是传递Bundle对象,使用putExtras()方法。
方法一
- 发送数据
putExtra()传送的是键值对,第一个参数是key,第二个参数是value。
Intent intent = new Intent(MainActivity.this, Activity2.class); intent.putExtra("name", "hello"); startActivity(intent);
- 接收数据
getString(): Extra根据key,获取value的值。
Intent intent = getIntent(); String name = intent.getStringExtra("name");
方法二
- 发送数据
使用bundle传输数据,putString(),putInt(),第一个参数key,第二个参数value.
可以传递String,int类型,或者其他。
Intent i = new Intent(MainActivity.this, Activity3.class); Bundle bundle = new Bundle(); bundle.putString("name", "hello"); bundle.putInt("grade", 10); i.putExtras(bundle); startActivity(i);
- 接收数据
Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String name = bundle.getString("name"); int grade = bundle.getInt("grade");
Example
源码地址:
设置2个按键分别用于测试2种方法传送的数据。在MainActivity之外再创建2个activity。
不同的按键启动不同的Activity,传递的方式也不同。
显示效果:
点击第一个按键
点击第二个按键
显示效果是一样的,只是内部传递的数据方式不同。
Tony Liu
2017-3-10, Shenzhen