溫馨提示×

Android的startactivityforresult怎么使用

小億
92
2023-08-08 02:41:03
欄目: 編程語言

使用startActivityForResult()方法可以啟動(dòng)一個(gè)Activity,并且在該Activity關(guān)閉后,可以獲取到返回的結(jié)果。

以下是使用startActivityForResult()方法的步驟:

  1. 在當(dāng)前Activity中調(diào)用startActivityForResult()方法,傳入一個(gè)Intent對象和一個(gè)請求碼(requestCode)。
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
  1. 在被啟動(dòng)的Activity中設(shè)置返回結(jié)果,并在適當(dāng)?shù)臅r(shí)候關(guān)閉Activity。
Intent returnIntent = new Intent();
returnIntent.putExtra("result", resultData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
  1. 在當(dāng)前Activity中重寫onActivityResult()方法,該方法會(huì)在被啟動(dòng)的Activity關(guān)閉后被調(diào)用,可以在該方法中獲取返回的結(jié)果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 處理返回結(jié)果
}
}

注意事項(xiàng):

  • 請求碼(requestCode)是一個(gè)整型值,用于標(biāo)識(shí)啟動(dòng)的Activity,可以自定義。

  • setResult()方法用于設(shè)置返回結(jié)果,第一個(gè)參數(shù)為結(jié)果碼(resultCode),一般使用Activity.RESULT_OK表示成功。

  • 可以通過Intent對象的putExtra()方法傳遞額外的數(shù)據(jù),返回結(jié)果時(shí)可以通過getXXXExtra()方法獲取。

  • 如果被啟動(dòng)的Activity意外關(guān)閉(如崩潰),則onActivityResult()方法可能不會(huì)被調(diào)用,需要注意處理這種情況。

0