第一個Activity A啓動另一個Activity B,B返回數據給Aide
=============================================================================get
在A中:it
Intent intent = new Intent(A, B);
startActivityForResult(intent, 1);request
startActivityForResult()方法接收兩個參數,第一個參數仍是 Intent,第二個參數是請求碼(只要是惟一值就能夠),用於在以後的回調中判斷數據的來源。請求
=============================================================================方法
在B中:數據
Intent intent = new Intent();
intent.putExtra("data_return", "Hello A");
setResult(RESULT_OK, intent);
finish();vi
setResult()方法接收兩個參數,第一個參數用於向上一個活動返回處理結果,通常只使用 RESULT_OK 或RESULT_CANCELED 這兩個值,第二個參數則是把帶有數據的 Intent 傳遞回去,而後調用了 finish()方法來銷燬當前活動。cas
=============================================================================因爲咱們是使用 startActivityForResult()方法來啓動 B 的, 在 B被銷燬以後會回調上一個活動的 onActivityResult()方法,所以咱們須要在 A中重寫這個方法來獲得返回的數據回調
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("data_return");
Log.d("FirstActivity", returnedData);
}
break;
default:
}
}
onActivityResult()方法帶有三個參數,第一個參數 requestCode,即咱們在啓動活動時傳入的請求碼。 第二個參數 resultCode, 即咱們在返回數據時傳入的處理結果。 第三個參數 data,即攜帶着返回數據的 Intent。因爲在一個活動中有可能調用 startActivityForResult()方法去啓動不少不一樣的活動,每個活動返回的數據都會回調到 onActivityResult()這個方法中,所以咱們首先要作的就是經過檢查 requestCode 的值來判斷數據來源。肯定數據是從B 返回的以後,咱們再經過 resultCode 的值來判斷處理結果是否成功。最後從data中取值並打印出來,這樣就完成了向上一個活動返回數據的工做。
================================================================================
《第一行代碼》筆記
================================================================================