在Activity_A中啟動Activity_B
實現Activity_A和Activity_B間的對話
一、信息僅從Activity_A傳遞到Activity_B
Activity_A.java :
Intent intent = new Intent(Activity_A.this,Activity_B.class);
intent.putExtra(key,value);
startActivity(intent);
將value信息,以鍵-值的形式,附加在Intent對象上發(fā)送過去,value可以是任意數據。
Activity_B.java :
getIntent().get類型Extra(key,defaultValue);
//類型表示接收信息的類型,比如getStringExtra(...)等
通過此行代碼返回傳遞過來的值,明顯第二個參數為默認值。
二、Activity_B同時返回信息到Activity_A
Activity_A.java :
Intent intent = new Intent(Activity_A.this,Activity_B.class);
intent.putExtra(key,value);
startActivityForResult(intent,requestCode);
可以看到,啟動Activity_B的方法更改成startActivityForResult(...)。
requestCode表示請求代碼,當Activity_A啟動多個不同類型的子activity時,用于區(qū)分各消息反饋。
在Activity_A中還需要重寫onActivityResult(...)方法,來獲取Activity_B回傳的值。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
value = data.get類型Extra(key, defaultValue); // value表示回傳的值
}
}
Activity_B.java :
getIntent().get類型Extra(key,defaultValue);
Intent data = new Intent();
data.putExtra(key,value);
setResult(resultCode,data);
可以看出,子activity通過setResult(...)方法將信息返回給父activity。
更多建議: