溫馨提示×

Android startActivityForResult怎么使用

小億
111
2023-08-10 19:08:29
欄目: 編程語言

在Android中,startActivityForResult()方法用于啟動一個Activity,并且在該Activity完成后返回結(jié)果。以下是使用startActivityForResult()方法的步驟:

  1. 在調(diào)用startActivityForResult()方法的Activity中,創(chuàng)建一個Intent對象,并使用putExtra()方法將需要傳遞給目標Activity的數(shù)據(jù)添加到Intent中。

  2. 調(diào)用startActivityForResult()方法,并傳入Intent對象和一個請求碼。請求碼是一個用于標識啟動的Activity的唯一標識符。

Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("data", data);
startActivityForResult(intent, REQUEST_CODE);
  1. 在目標Activity中,通過調(diào)用setResult()方法設(shè)置需要返回的結(jié)果,并使用RESULT_OK或其他自定義的結(jié)果碼來表示操作是否成功。
Intent intent = new Intent();
intent.putExtra("result", resultData);
setResult(RESULT_OK, intent);
finish();
  1. 在調(diào)用startActivityForResult()方法的Activity中,重寫onActivityResult()方法來接收目標Activity返回的結(jié)果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// 處理返回的結(jié)果
String result = data.getStringExtra("result");
// ...
}
}
}

在onActivityResult()方法中,根據(jù)請求碼requestCode和結(jié)果碼resultCode來判斷返回的結(jié)果是否是我們期望的,并通過Intent對象獲取返回的數(shù)據(jù)。

0