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