在Android中,startActivityForResult()方法允許你啟動一個新的Activity,并且在新的Activity結束后返回結果給調用它的Activity。
首先,在調用startActivityForResult()方法之前,你需要先準備好一個Intent對象,用于啟動新的Activity。Intent對象包含了要啟動的Activity的類名或者Action。
然后,調用startActivityForResult()方法來啟動新的Activity,并傳入Intent對象和一個用于標識返回結果的請求碼(requestCode)。
int requestCode = 1; // 請求碼可以是任意的整數
Intent intent = new Intent(this, SecondActivity.class); // SecondActivity為要啟動的Activity
startActivityForResult(intent, requestCode);
在新的Activity中,當任務完成后,你可以通過調用setResult()方法來設置結果數據,并使用Activity的finish()方法來關閉當前Activity。
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "這是返回的結果"); // 可以通過putExtra()方法來傳遞結果數據
setResult(Activity.RESULT_OK, resultIntent);
finish();
最后,在調用startActivityForResult()方法的Activity中,需要重寫onActivityResult()方法來處理返回的結果數據。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) { // 根據請求碼和結果碼來判斷是哪個請求返回的結果
String result = data.getStringExtra("result"); // 獲取結果數據
// 處理結果數據
}
}
使用startActivityForResult()方法可以方便地啟動一個新的Activity,并獲取返回的結果數據。記得在調用startActivityForResult()方法的Activity中重寫onActivityResult()方法來處理結果數據。