在Android開發中,startActivityForResult()是一個用來啟動一個新的Activity并且在新的Activity關閉后返回結果的方法。該方法可以用于在不同的Activity之間進行數據的傳遞和返回結果的處理。
基本用法如下:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
其中,第一個參數為當前的Context,第二個參數為要啟動的Activity的class,第三個參數為一個用來標識請求的唯一的整數值。
Intent intent = new Intent();
intent.putExtra("result", "Hello World");
setResult(RESULT_OK, intent);
其中,第一個參數為返回的結果碼,一般使用RESULT_OK表示成功,第二個參數為包含返回數據的Intent對象。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 處理返回的結果
}
}
其中,requestCode參數為請求的標識,resultCode參數為返回的結果碼,data參數為包含返回數據的Intent對象。根據requestCode和resultCode來處理返回的結果。
需要注意的是,被啟動的Activity如果被用戶手動關閉(按下返回鍵)而不是通過setResult()方法設置返回結果,則resultCode將為RESULT_CANCELED,表示操作取消。
以上就是Android startActivityForResult的基本用法。通過該方法可以方便地進行Activity之間的數據傳遞和返回結果的處理。