Activity之间的数据交换通过它们之间的”信使“Intent来完成,将数据放入Intent即可。
Intent提供了携带数据的方法:
putExtras(Bundle data:向Intent中放入需要携带的数据。
获取数据的方法:
getExtras();
Bundle是一个简单的数据携带包,包含了多个方法来存入数据:
putXxx(String key ,Xxx data):想Bundle中存入int,long等类型的数据。
putSerializable(String key,Serializable data):向Bundle中存入可序列化的对象。
从Bundle中取出数据的方法:
getXxx(String key):从Bundle中取出int,long等类型的数据。
getSerializable(String key,Serializable data):从Bundle中取出可序列化的对象。
例:
//创建Intent携带数据,Budnle存入数据,Person为可序列化的类
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
Bundle data = new Bundle();
data.putSerializable("person",key);
intent.putExtras(data);
startActivity();
//接收端:
Intent intent = getIntent();
Bundle data = intent.getExtras();
Person p = (Person)data.getSerializable("person");